Java基于递归解决全排列问题算法示例

网友投稿 417 2023-03-15


Java基于递归解决全排列问题算法示例

本文实例讲述了java基于递归解决全排列问题算法。分享给大家供大家参考,具体如下:

排列问题

设R={r1,r2,...,rn}是要进行排列的n个元素,Ri=R-{ri}。集合x中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排列PZVyPQgOQerm(X)的每一个排列前加上前缀ri得到的排列。R的全排列可归纳如下:

当n=1时,Perm(R)=(r),其中r是集合中唯一的元素;

当n>1时,Perm(R)由(r1)Perm(R1),(r2)Perm(R2),(r3)Perm(R3)。。。。(rn)Perm(Rn)构成。

public class AllSort {

public static void perm(int[] list, int k, int m) {

if( k == m) {

for (int i = 0; i <=m; i++) {

System.out.print(list[i]);

}

System.out.println();

}

else{

for(int i = k; i <= m; i++) {

swap(list,k,i);

perm(list, k+1 , m);

swap(list,k,i);

}

}

}

public static void swap(int[] list, int a, int b) {

int temp;

temp = list[a];

list[a] = list[b];

list[b] = temp;

}

public static void main(String args[]) {

int[] list = new int[5];

for(int i = 0; i < list.length; i++) {

list[i] = i+1;

}

perm(list,0,list.length-1);

}

}

运行结果:

12345

12354

12435

12453

12543

12534

13245

13254

13425

13452

13542

13524

14325

14352

14235

14253

14523

14532

15342

15324

15432

15423

15243

15234

21345

21354

21435

21453

21543

21534

23145

23154

23415

23451

23541

23514

24315

24351

24135

24153

24513

24531

25341

25314

25431

25413

25143

25134

32145

32154

32415

32451

32541

32514

31245

31254

31425

31452

31542

31524

34125

34152

34215

34251

34521

34512

35142

35124

35412

35421

35241

35214

42315

42351

42135

42153

42513

42531

43215

43251

43125

43152

43512

43521

41325

41352

41235

41253

41523

41532

45312

45321

45132

45123

45213

45231

52341

52314

52431

52413

52143

52134

53241

53214

53421

53412

53142

53124

54321

54312

54231

54213

54123

54132

51342

51324

51432

51423

51243

51234

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Intellij IDEA 2017 debug断点调试技巧(总结)
下一篇:api接口文档模板在哪找(api接口文档生成工具)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~