用python给数字排序,python随机生成数字并排序
All array指给定一个数组,枚举所有可能的数组组合,N个元素共享N!将种子并排混合。
比如在[1 , 2 , 3]的情况下,所有数组的结果都是123,132,213,231,312,321,总共3!=6种。
直观的思路是从数组中依次选择一个元素作为第一个元素,固定好第一个元素后,将剩下的n-1个元素作为整个数组。
这显然是一个递归的思路,需要决定逃逸条件,但这里是只剩下一个元素的情况,自然会达到顶点。
根据这个观点,代码如下。
从_ _ future _ _导入print _ function
efperm(elem_list,s= ):
#类型检查
iftype(elem_list)!=类型([]):
返回
#参数合法性检查
iflen(elem_list )==0:
返回
#弹出条件
iflen(elem_list )==1:
#打印当前结果
print(selem_list[0]()())))).
返回
选择一个作为#1元素。
对于I,einenumerate(Elem_list):
#递归调用自身,同时传递当前前缀字符串
perm(elem _ list[:I]elem _ list[I 1:],s e))
测试案例数量
烫发([1 , 2 , 3]
上述代码的执行结果如下。
123
132
213
231
312
321
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。