python 写的两种打印全排列的方法速度对比
来源:互联网 发布:创业软件办公平台 编辑:程序博客网 时间:2024/06/12 21:39
方法一:
max = 6
index = [0]*max
from time import clock
start=clock()
while True:
candi = range(0,max)
for i in range(1,max+1):
print candi.pop(index[-i]),
print ''
index[1] += 1
i = 1
while i < max-1 and index[i] > i:
index[i] = 0
index[i+1] += 1
i+=1
if index[-1] >= max:
break
finish=clock()
print (finish-start)
方法二:
def myprint(a,offset,needPrint):
if needPrint:
print a
if len(a) == 1:
return
for t in range(offset,len(a)):
te = a.pop(len(a)-1)
a.insert(0,te)
myprint(a,offset+1,t != len(a) -1)
from time import clock
start=clock()
a = [0,1,2,3,4,5]
myprint(a,0,True)
finish=clock()
print (finish-start)
方法一是从网上找的非递归的方法,使用的是统计学的方法,方法二是递归调用方法,如果方法二的换位置自己写的话,用时差不多,如果使用上述方法写的话,大家看看时间吧:
- python 写的两种打印全排列的方法速度对比
- 生成全排列的两种方法
- Python,实现全排列的打印
- Python 生成全排列的两种方式
- 两种生成全排列序列的方法
- 递归处理全排列问题的两种方法
- 全排列的两种常见方法(递归,STL)
- 输出全排列的两种方式
- 打印字符串的全排列
- 打印字符串的全排列
- 打印字符串的全排列
- 打印数组的全排列
- 打印字符串的全排列
- python 的全排列
- python打包成exe的两种方法对比
- 两种使用python打印菱形的方法
- python 全排列的实现
- 打印一个数组的全排列
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用4
- 懂了生死,才有了伤悲——读《巨流河》有感
- warning: the `gets' function is dangerous and should not be used.
- 1731 圣诞节礼物
- ext开发环境总结
- python 写的两种打印全排列的方法速度对比
- 用匈牙利算法求二分图的最大匹配
- 1732 隐藏的BUAA
- 1733 盒子工厂
- HDOJ 1150 Machine Schedule解题报告
- C [ OPENMP ]
- 1766 转义字符
- 正版系统与盗版系统的区别
- RGB888和565相互转换