您的位置:首页 > 编程语言 > Java开发

java全排列算法实现

2016-05-04 00:00 519 查看
摘要: java 数据结构 算法 全排列算法

/**
*  new String[]{"a","b","c"}
*
*/
private static ArrayList<ArrayList<String>> permute(String[] num) {
ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
result.add( new ArrayList<String>());

for ( int i = 0; i < num. length; i++) {   //循环出每一个数字
ArrayList<ArrayList<String>> current = new ArrayList<ArrayList<String>>();

for (ArrayList<String> l : result) {
for ( int j = 0; j < l.size()+1; j++) {
l.add(j, num[i]);   //i;控制插入的内容,j:控制插入的位置
ArrayList<String> temp = new ArrayList<String>(l);  //保存插入后list中的内容
current.add(temp);    //把copy后的list放入,一个零时的List;
l.remove(j);    //去掉插入的数据,保持原样,方便下次在不同的位置插入数据
}
}
result = new ArrayList<ArrayList<String>>(current);
}
return result;
}
推荐大家一本电子版的《数据结构与算法java版》,希望学习算法的友友直接拿去。
资料地址:http://www.quzhuanpan.com/download/checkResult.action?id=78005&type=3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: