求全排列的算法???

牛海朋 2010-11-04 11:46:09
现有一个数组buf[]
要求对其全排列
并将排列后的所有数组放在一个list里,方法返回该list
如下,求功能实现

public List perm(int[] buf){
List list=null;
/*
实现代码

*/


return list;

}
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
学习Java中 2010-11-04
  • 打赏
  • 举报
回复
Elim-Zhang 2010-11-04
  • 打赏
  • 举报
回复
package com.syj.csdn;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
* <p>
* Title:全排列算法
* </p>
*
* <p>
* Copyright: http://blog.csdn.net/sunyujia/
* </p>
*
* @author 孙钰佳
* @main sunyujia@yahoo.cn
* @date 2009-04-25 23:57:23 PM
*/
public class FullSort {
//将NUM设置为待排列数组的长度即实现全排列
private static int NUM = 3;

/**
* 递归算法:将数据分为两部分,递归将数据从左侧移右侧实现全排列
*
* @param datas
* @param target
*/
private static void sort(List datas, List target) {
if (target.size() == NUM) {
for (Object obj : target)
System.out.print(obj);
System.out.println();
return;
}
for (int i = 0; i < datas.size(); i++) {
List newDatas = new ArrayList(datas);
List newTarget = new ArrayList(target);
newTarget.add(newDatas.get(i));
newDatas.remove(i);
sort(newDatas, newTarget);
}
}

public static void main(String[] args) {
String[] datas = new String[] { "a", "b", "c", "d" };
sort(Arrays.asList(datas), new ArrayList());
}

}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunyujia/archive/2009/04/26/4124011.aspx


我帮你从楼上那位提供的地址拷过来的
牛海朋 2010-11-04
  • 打赏
  • 举报
回复
baiyu123
把你的代码写上好吗

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧