摘要: 问题:输入一个序列(元素无重复),输出其全排列一般采用经典的递归解法,后来想将其改造为非递归代码,思考很久后觉得并不好写,手工模拟递归栈的行为容易出错。然后上网搜索了一下众网友的非递归代码,发现很多人的非递归代码是各种全新的求解算法,而不是相同算法的非递归实现,和我想要的不一样。递归解法:假设输入序列[0,1,2,3],将其分解为4个子问题0+[1,2,3],1+[0,2,3],2+[0,1,3],3+[0,1,2],这样每个子问题的规模减小了1,一直递归下去直到无法再分解。 1 //对a[idx]~a[n-1]的元素进行全排列,原地排列 2 //第一个参数为序列集合,第二个为序列长度,第三个 阅读全文
posted @ 2013-07-30 20:34 _pop 阅读(916) 评论(0) 推荐(0) 编辑