我想测试不同的排序算法及其速度。算法函数看起来像这样:
def measure_algorithm(tests, algorithm):
results = []
for i in range(len(tests)):
result = %timeit -n 100 -r 3 -o (algorithm(tests[i]))
results.append(result.best)
return results
其中参数是数字列表。我想将这些算法用于不同的输入长度以获得图形。所以我编写了一个测试函数,它将算法作为参数,并使用不同的输入长度测试该算法。
unsorted_list = [1, 3, 2, 9, 7, 5, 0, ...]
lengths = [10, 50, 100, 500, ...]
tests = []
for i in range(len(lengths)):
tests.append(unsorted_list[:lengths[i]])
heapsort_times = measure_algorithm(tests, heapsort)
quicksort_times = measure_algorithm(tests, quicksort)
...
调用此函数的代码如下所示:
NameError: name 'algorithm' is not defined
但现在我得到了
authorize @artist
我正在使用Python 3和IPython Notebook。
我做错了什么?