求高人解释一段递归代码 本帖最后由 cczcseiya423 于 2011-05-30 11:32:28 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/afunx/archive/2011/06/01/6458770.aspx 例如arr:1,2,3,4先是getSequence(arr,0,4),若进入stack的是2,则swap后arr变为:2,1,3,4然后getSequence(arr,1,3),若取出的是3,zeswap后arr变为:2,3,1,4就这样一直运算下去,当调用getSequence(arr,4,0)时,即num==0时,一个排列已经完成了,所以统计j++要加一了。之所以在每次调用getSequence()之后都要再次调用swap将之前swap的两元素交换回来是为了保证每次寻找下一个排列的时候arr中元素排列顺序都与最初的相同,否则的话arr的元素排列就不再是1,2,3,4这样的顺序了。不知道我的的表达是不是清楚,不过还是要跟LZ说一句:这段代码是我在这个论坛里看过的注释最详细的代码了,而且也没涉及到很难的东东(以我这个初学者的眼光来看),LZ需要反省一下自己了 vector练习题 帮忙给个方法或者思路 对面的高手看过来~~看过来看过来 高手哪儿去了 一个Collections对象的问题 问一下Java的API中有没有关于光线和明暗效果或亮度的类( 现在本人正在编写光线跟踪算法)? 如和读取TextField内容? 怎样用JDBC-ODBC桥连接各种数据库? 搞不掂,请教大家! Symantec组件使用后,如何处理能够使其在IE或Netscape中正常运行? 高分悬赏:Itext生成word文档的时候怎么给文字加链接? 求教静态工厂方法的具体用法(不是设计模式中的工厂)
先是getSequence(arr,0,4),若进入stack的是2,则swap后arr变为:2,1,3,4
然后getSequence(arr,1,3),若取出的是3,zeswap后arr变为:2,3,1,4
就这样一直运算下去,当调用getSequence(arr,4,0)时,即num==0时,一个排列已经完成了,所以统计j++要加一了。
之所以在每次调用getSequence()之后都要再次调用swap将之前swap的两元素交换回来是为了保证每次寻找下一个排列的时候arr中元素排列顺序都与最初的相同,否则的话arr的元素排列就不再是1,2,3,4这样的顺序了。
不知道我的的表达是不是清楚,不过还是要跟LZ说一句:这段代码是我在这个论坛里看过的注释最详细的代码了,而且也没涉及到很难的东东(以我这个初学者的眼光来看),LZ需要反省一下自己了