黑马程序员技术交流社区
标题:
总结了一个全排列的算法,递归实现。
[打印本页]
作者:
许智敏
时间:
2013-5-15 14:27
标题:
总结了一个全排列的算法,递归实现。
本帖最后由 许智敏 于 2013-5-15 16:07 编辑
/*
* 给定一个数组或串,求他的全排列的方法。
* 比如 1 2 3 4 5 的全排列,
* 数组中的每个元素只能出现一次的全排列。
*/
package summary;
public class 全排列 {
public static void main(String[] args){
int[] arr = {1,2,3,4,5};
paiLie(arr,0,arr.length-1);
}
public static void paiLie(int[] arr,int start,int end){
if(start>=end){
for(int x : arr)
System.out.print(x+",");
System.out.println();
return;
}
else{
for(int i=start;i<=end;i++){
int temp = arr[start];
arr[start] = arr[i];
arr[i] = temp;
paiLie(arr,start+1,end);
temp = arr[start];
arr[start] = arr[i];
arr[i] = temp;
}
}
}
}
复制代码
作者:
许智敏
时间:
2013-5-15 16:04
本帖最后由 许智敏 于 2013-5-15 16:06 编辑
c15881291595 发表于 2013-5-15 15:16
你这个只能每个元素不同的全排列吧。。 { 1, 2, 2, 4, 5 } 呢?
恩。就是对给定的数组全排列,数组中每个字符只能出现一次的全排列。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2