Fork me on GitHub
  2013年11月5日
摘要: 问题描述:给定已知序列A1A2…An,求出其所有排列组合一、递归算法基本思路:1. 如果n等于1,输出当前序列2. 否则依次交换Ai(i=1,2..n-1,n)和An3. 对于前n-1长度序列,重复1、2两步算法复杂度O(n!),算法缺点:如果序列中有重复字符,会出现相同排列组合。递归算法效率低。算法优点:可以应用于所有字符串序列二、非递归算法基本思路:1. 假设字符都是可比较的,每种排列组合之间都可以比较大小,A1A2…An的最小排列是P1P2…Pn(P1,p2..pn是非严格递增的)。2. 从P1P2…Pn开始找出刚好比当前排列大的排列。3. 循环第2步,直到得到最大的排列Pn…P2p1, 阅读全文
posted @ 2013-11-05 23:21 coderkian 阅读(2308) 评论(0) 推荐(0) 编辑


作者:coderkian
出处:http://www.cnblogs.com/coderkian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。