1.2.3.4.5java递归排序_用递归的方法来求解{1,2,3,4,5}的全排序 下面是我写的java程序 最后输出的时候有问题...

我希望能够把所有的排序都给保存到list当中可是最后遍历list输出的结果却是1234512345123451234512345......总共也是120个没有错,可是为什么会都是12345排序而不是我想要的全排序这里...

我希望能够把所有的排序都给保存到list当中

可是最后遍历list输出的结果却是

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

......

总共也是120个没有错,可是为什么会都是1 2 3 4 5排序而不是我想要的全排序

这里想了好久没有想通

求高手解答

在此谢过了

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

import java.util.Vector;

public class diGui {

static int n=0;

static List> list=new LinkedList();

public static void main(String[]args)

{

List Arr=new LinkedList();

for(int i=0;i<6;i++)

{

Arr.add(i+1);

}

perm(Arr,0,4);

//遍历list

for(int i=0;i

{

Listtemp=list.get(i);

for(int j=0;j

{

System.out.print(temp.get(j)+" ");

}

System.out.println();

}

};

public static void perm(ListArr,int begin,int end)

{

//终止条件

if(begin>=end)

{

list.add(Arr);

return ;

}

else

{

for(int i=begin;i<=end;i++)

{

swap(Arr,begin,i);

perm(Arr,begin+1,end);

swap(Arr,begin,i);

}

}

}

//交换k和m的值

public static void swap(ListArr,int k,int m)

{

int temp=Arr.get(k);

Arr.set(k, Arr.get(m));

Arr.set(m, temp);

}

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值