python的内置排序究竟有多快
我比较了一下sort和一个自己写的o(n)的程序的运行时间。
惊奇发现sort的速度几乎和直接用python写的o(n)的程序运行时间接近
先上代码
sort的测试代码
import random
import sys
len_test_arr = int(sys.argv[1])
test_arr = [random.random() for i in xrange(len_test_arr)]
len_test_arr.sort()
测试时间的运行指令 time python test.py 10,10表示数组长度,用到了time,只取了user time。
python写的o(n)的程序
import random
import sys
def counting_sort(a):
count = [0]*100
for i in a:
count += 1
return count
len_test_arr = int(sys.argv[1])
test_arr = [random.randint(0, 99) for i in xrange(len_test_arr)]
counting_sort(test_arr)
测试时间的运行指令相同 time python test.py 10,10表示数组长度,只取了user time。
结果
内置sort
数据大小 | 运行时间(s)
10 0.01
100 0.014
1000 0.01
10000 0.013
100000 0.065
1000000 0.769
10000000 10.991
python写的o(n)的程序
数据大小 | 运行时间(s)
10 0.01
100 0.01
1000 0.01
10000 0.02
100000 0.13
1000000 1.1
10000000 12
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。