Найти - Пользователи
Полная версия: Как измерять время сортировки
Начало » Python для новичков » Как измерять время сортировки
1
JZ911
Есть вот такой код
 import random
def Selection_sort_algorithm(a):
    for i in range(0, len(a) - 1):
        min = a[i]
        min_ind = i
        for j in range(i + 1, len(a)):
            if a[j] < min:
                min = a[j]
                min_ind = j
        a[i], a[min_ind] = a[min_ind], a[i]
    return a
x = [random.randint(0, 99) for i in range(0, 100000)]
y = [random.uniform(0, 99) for i in range(0, 100000)]
print(x)
print(y)
x = Selection_sort_algorithm(x)
y =Selection_sort_algorithm(y)
print(x)
print(y)
нужно измерять время сортировки
JOHN_16
JZ911
смотрите модуль timeit
JZ911
если можно помогите
vic57
JZ911
если можно помогите
надо и самому трудиться
 >>> from time import time
>>> t1 = time();l = [i for i in range(9999999)];print(time() - t1)
0.6199610233306885
>>> 
py.user.next
  
>>> import timeit
>>> 
>>> def f(a, b):
...     return a + b
... 
>>> timer = timeit.Timer('f(1, 2)', 'from __main__ import f')
>>> 
>>> timer.timeit()
0.12781486700032474
>>> 
>>> timer.repeat(3)
[0.12270890699983283, 0.1221747099998538, 0.1221186780003336]
>>>

Можно и так замерять, но не рекомендуется из-за дополнительной функции lambda
  
>>> import timeit
>>> 
>>> def f(a, b):
...     return a + b
... 
>>> timer = timeit.Timer(lambda: f(1, 2))
>>> timer.timeit()
0.20642959999986488
>>> 
>>> timer.repeat(3)
[0.20294039899999916, 0.2028366700001243, 0.20304800399981104]
>>>
В общее время добавляется время выполнения дополнительной функции lambda. Но это может пригодиться, если надо по-быстрому сравнить результаты выполнения разных функций и узнать, какая из них быстрее работает.


tags: timeit
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB