如何使用timeit
创建用来排序的数组
创建若干不同大小的数组,其中的数组元素都是随机整数。times = numpy.array([]) for size in sizes: integers = numpy.random.random_integers(1, 10 ** 6, size) times = numpy.append(times, measure())
测量执行时间
为了测量时长,需要创建一个定时器,并为其提供一个需要执行的函数和相关的引入语句。
然后执行100次排序操作,得到总的排序时间。def measure(): timer = timeit.Timer('dosort()','from __main__ import dosort') return timer.timeit(10 ** 2)
- 构建测量时间数组
通过逐一添加测量值的方式,构建测量时间数组。
times = numpy.append(times, measure())
- 比照nlogn模型拟合数据。
比照nlogn这个理论模型,对测量时间数据进行拟合。
因为我们选择的数组大小是2的整数次幂,通过改变幂指数来改变大小,所以相关的计算过程并不复杂。
fit = numpy.polyfit(sizes * powersOf2, times, 1)