您的位置:首页 > 其它

传入一个数组,输出这个数组里面的所有排列

2012-11-12 13:20 190 查看
import java.util.ArrayList;

/**
* 传入一个数组,输出这个数组里面元素的所有可能组合
* EG:[1,2,3] 输出[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1]
* @author Administrator
*/
public class ArrSort {

static ArrSort as;
ArrayList<String> save = new ArrayList<String>();
static String[] arr = {"1","2","3","4"};

/**
* 判断list里面是否放入过当前数
* @param cur 当前数
* @param save	list
* @return
*/
public boolean is(String cur,ArrayList<String> save){

for (String string : save) {
if(null == string)return false;
if(string.equals(cur)){
return true;
}
}
return false;
}

public void rec(int a){

for(int i=0;i<arr.length;i++){
if(as.is(arr[i], save))continue;
save.add(arr[i]);

if(a==1){
System.out.println(save);
}

rec(a -1);
save.remove(arr.length-a);
}

}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
as = new ArrSort();
as.rec(arr.length);
}
}

面试的一道题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐