插入法全排列
- 对于一个集合中的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