Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2017 14:09:09

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Как измерять время сортировки

Есть вот такой код

 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)
нужно измерять время сортировки

Офлайн

#2 Ноя. 8, 2017 14:47:10

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Как измерять время сортировки

JZ911
смотрите модуль timeit



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Ноя. 8, 2017 17:03:09

JZ911
Зарегистрирован: 2017-11-02
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Как измерять время сортировки

если можно помогите

Офлайн

#4 Ноя. 8, 2017 18:00:57

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Как измерять время сортировки

JZ911
если можно помогите
надо и самому трудиться
 >>> from time import time
>>> t1 = time();l = [i for i in range(9999999)];print(time() - t1)
0.6199610233306885
>>> 

Офлайн

#5 Ноя. 9, 2017 02:20:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Как измерять время сортировки

  
>>> 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



Отредактировано py.user.next (Ноя. 9, 2017 02:26:06)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version