插入法全排列
- 对于一个集合中的n个元素,有n阶乘中全排列
- 如对于4个元素的集合,有4×3×2×1中全排列
- 4×3×2×1可以解释为:
- 对于1个元素,有1种全排列
- 1个元素有2个空位,即 ()e(),()代表空位,e为元素,所以第二个元素插入有两个位置,而原本有1种全排,则2个元素有1×2种全排列
- 3个元素有 ()e1()e2() 和 ()e2()e1(),即第三个元素每插入一个空位则产生一种全排列,所以3个元素有6个空位,即1×2×3 = 6种全排
- 4个有3个元素全排的种数基础上×4,即1×2×3×4 = 24种
- 算法(python):
# 参数为字符串 def myPermutation(arg): arg = list(arg) # 全排集合 set = [[]] for item in arg: tempSet = [] for subset in set: #对于每个子集 length = len(subset)+1 for i in range(length): # 每进行一次插入得到一个新全排 subset.insert(i,item) tempSet.append(list(subset)) subset.pop(i) # 更新全排集合 set = tempSet return set
讯享网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65593.html