Python嵌套循环效率测试,三种算法。
2011-07-11 21:23
786 查看
#coding:gbk
import time
v=[0,0,0,0]
count1=0
'''
题目:枚举出由len个字符构成的长度为t的所有符串。
递归实现:长度为len,层数为t的嵌套循环。
在执行过程中,当t=1时表示处于循环的最内层,此时应当输出结果,共有len的t次方个结果。
效率:len=100,t=3时,耗时0.18799996376s。相同的算法,用C实现,耗时15ms。
'''
def aaa(len, t):
#print(len,t)
for i in range(len):
#print("i:%d t:%d"%(i, t))
#v[t] = i
if t==1:
#print(v)
kdfjd = 0
if t>1:aaa(len, t-1)
#print("rr", i, t)
'''
题目:枚举出由len个字符构成的长度为t的所有符串。
模运算实现:先计算总样本空间的大小,然后计算每一位的值。样本空间可以看成以下集合:t位len进制的数列,因此可以用模运算遍历所有样本空间
执行过程中,j代表当前的位置,也就是嵌套循环中的层数
效率:len=100,t=3时,耗时3.18700003624s
'''
def bbb(len, t):
mod = [0]*t
for j in range(t):mod[j]=pow(len,j)
for i in range(pow(len, t)):
ss = ""
for j in range(t):
#ss = str(int(i/mod[j])%len) + " " + ss
dljfkdj = int(i/mod[j])%len
#print (ss)
'''
题目:枚举出由len个字符构成的长度为t的所有符串。
嵌套循环实现3层
效率:len=100,t=3时,耗时0.0620000362396s
'''
def ccc(len, t):
pos = 0
for i in range(len):
#print(i)
for j in range(len):
#print(i,j)
for k in range(len):
#print(i, j, k)
#pos = pos + 1
ddljfsdjf=0
t0 = time.time()
aaa(100, 3)
t1 = time.time()
print("aaa", t1-t0)
import time
v=[0,0,0,0]
count1=0
'''
题目:枚举出由len个字符构成的长度为t的所有符串。
递归实现:长度为len,层数为t的嵌套循环。
在执行过程中,当t=1时表示处于循环的最内层,此时应当输出结果,共有len的t次方个结果。
效率:len=100,t=3时,耗时0.18799996376s。相同的算法,用C实现,耗时15ms。
'''
def aaa(len, t):
#print(len,t)
for i in range(len):
#print("i:%d t:%d"%(i, t))
#v[t] = i
if t==1:
#print(v)
kdfjd = 0
if t>1:aaa(len, t-1)
#print("rr", i, t)
'''
题目:枚举出由len个字符构成的长度为t的所有符串。
模运算实现:先计算总样本空间的大小,然后计算每一位的值。样本空间可以看成以下集合:t位len进制的数列,因此可以用模运算遍历所有样本空间
执行过程中,j代表当前的位置,也就是嵌套循环中的层数
效率:len=100,t=3时,耗时3.18700003624s
'''
def bbb(len, t):
mod = [0]*t
for j in range(t):mod[j]=pow(len,j)
for i in range(pow(len, t)):
ss = ""
for j in range(t):
#ss = str(int(i/mod[j])%len) + " " + ss
dljfkdj = int(i/mod[j])%len
#print (ss)
'''
题目:枚举出由len个字符构成的长度为t的所有符串。
嵌套循环实现3层
效率:len=100,t=3时,耗时0.0620000362396s
'''
def ccc(len, t):
pos = 0
for i in range(len):
#print(i)
for j in range(len):
#print(i,j)
for k in range(len):
#print(i, j, k)
#pos = pos + 1
ddljfsdjf=0
t0 = time.time()
aaa(100, 3)
t1 = time.time()
print("aaa", t1-t0)
相关文章推荐
- c# 冒泡排序算法中三种前后值交换算法效率测试
- Arrylist三种遍历iterator,for,增强for循环效率测试
- 测试效率优化案例----多国语言自动化校验工具(python)
- 一种可用来测试算法效率的足够精确的计时方法
- Python 编程实战提高测试工作效率实例之svn 文件管理
- 【mysql优化 3】嵌套循环连接算法
- python字符串连接的三种方法及其效率、适用场景详解
- javascript 求一组数的最小公倍数和最大公约数的简便算法 (三种方法,面向对象,回归迭代,和循环)
- Python学习笔记-02-循环测试条件中易犯错的要点及配套解决方案
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- python For 循环 三种遍历方式
- python基础教程共60课-第15课循环的嵌套
- 字符串循环移位的三种算法
- python练习题:循环打印嵌套列表
- 测试递归与循环(这里用for)的执行效率与系统开销
- Python pygorithm模块用法示例【常见算法测试】
- python 串口效率测试
- python三种跳出双层循环 其他语言跳出双层循环
- C、go、python、java、php和node.js 简单循环累加运算速度测试[测试demo仅供参考]
- 嵌套排列生成到循环排列生成的算法