如何使用timeit测量功能的运行时间?

时间:2020-09-27 13:19:54

标签: python python-3.x time

我想衡量选择排序的运行时间

<Window ....
    <Window.Clip>
        <RectangleGeometry Rect="0,0,857,483" RadiusX="25" RadiusY="25"/>
    </Window.Clip>
</Window>

但是我一直在不断遇到NameErrors,尤其是def selection_sort(arr): for i in range(len(arr)): least_idx = i for j in range(i + 1, len(arr)): if arr[j] < arr[least_idx]: least_idx = j arr[least_idx], arr[i] = arr[i], arr[least_idx] if __name__ == "__main__": import timeit import random n = 7 arr = random.sample(range(2**n), 2**n) timeit.timeit("selection_sort(arr)", "from __main__ import selection_sort", number=5) 。如何做到这一点并确保name 'arr' is not defined不会在已经排序的列表上运行该函数,并且python缓存也不会影响它?

1 个答案:

答案 0 :(得分:0)

您可以使用像这样的functools

    import functools
    t = timeit.Timer(functools.partial(selection_sort, arr)) 
    print (t.timeit(5))
相关问题