用python语言,以递归的方式输出全排列。代码较简洁。算法复杂度O(n!),最优。最大递归深度为n。
import copy
out = []
def permutation(a):
global out
if len(a) == 1:
# 递归出口
out.append(a[0])
print(out)
out.pop()
return
for i in range(len(a)):
t = copy.copy(a)
out.append(t.pop(i))
permutation(t)
out.pop()
return
def main():
a=[1,2,3,4,5,6]
permutation(a);
main()
欢迎互相讨论。
本文介绍了一个使用Python实现的全排列算法,通过递归方式生成所有可能的排列组合,适用于数据结构学习。递归出口设定为数组长度为1时,代码简洁,但注意最大递归深度限制为n。
1310

被折叠的 条评论
为什么被折叠?



