Почему встроенная функция sorted() работает медленнее для списка, содержащего числа по убыванию, если каждое число появл ⇐ Python
Почему встроенная функция sorted() работает медленнее для списка, содержащего числа по убыванию, если каждое число появл
I sorted four similar lists. List d consistently takes much longer than the others, which all take about the same time:
a: 33.5 ms b: 33.4 ms c: 36.4 ms d: 110.9 ms Why is that?
Test script (Attempt This Online!):
from timeit import repeat n = 2_000_000 a = [i // 1 for i in range(n)] # [0, 1, 2, 3, ..., 1_999_999] b = [i // 2 for i in range(n)] # [0, 0, 1, 1, 2, 2, ..., 999_999] c = a[::-1] # [1_999_999, ..., 3, 2, 1, 0] d = b[::-1] # [999_999, ..., 2, 2, 1, 1, 0, 0] for name in 'abcd': lst = eval(name) time = min(repeat(lambda: sorted(lst), number=1)) print(f'{name}: {time*1e3 :5.1f} ms')
Источник: https://stackoverflow.com/questions/781 ... rs-if-each
I sorted four similar lists. List d consistently takes much longer than the others, which all take about the same time:
a: 33.5 ms b: 33.4 ms c: 36.4 ms d: 110.9 ms Why is that?
Test script (Attempt This Online!):
from timeit import repeat n = 2_000_000 a = [i // 1 for i in range(n)] # [0, 1, 2, 3, ..., 1_999_999] b = [i // 2 for i in range(n)] # [0, 0, 1, 1, 2, 2, ..., 999_999] c = a[::-1] # [1_999_999, ..., 3, 2, 1, 0] d = b[::-1] # [999_999, ..., 2, 2, 1, 1, 0, 0] for name in 'abcd': lst = eval(name) time = min(repeat(lambda: sorted(lst), number=1)) print(f'{name}: {time*1e3 :5.1f} ms')
Источник: https://stackoverflow.com/questions/781 ... rs-if-each
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли встроенная функция для разделения целого числа на равные куски?
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-