算法笔记_017:递归执行顺序的探讨(Java)

最近两天在思考如何使用蛮力法解决旅行商问题(此问题,说白了就是如何求解n个不同字母的所有不同排序的序列问题,即共有n!次不同排序)。

为此,我认真看了一篇出自CSDN上的博客文章,其中有一段核心代码就是在for循环里面添加一句递归调用语句,来实现n!次排序。因此,我对文章中的那段核心代码苦苦不得其解——其执行顺序究竟是咋样的呢?

附其简要代码:

public int count = 0; public void Arrange(int[] A,int start,int step,int n,int Max){ if(step == 2) System.out.println("第"+(++count)+"次走完一圈"); if(count == Max) System.out.println("已完成!!!"); else{ for(int i = start;i < n;i++){ swapArray(A,start,i); Arrange(A,start+1,step+1,n,Max); swapArray(A,i,start); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsfwg.html