- 1
- 2
- 3
- 4
from random import randint
def qsort(l, rnd=0):
return (qsort([x for x in l if x < l[rnd]], rnd=randint(0, len([x for x in l if x < l[rnd]]) - 1) if [x for x in l if x < l[rnd]] else -1) + [x for x in l if x == l[rnd]] + qsort([x for x in l if x > l[rnd]], rnd=randint(0, len([x for x in l if x > l[rnd]]) - 1) if [x for x in l if x > l[rnd]] else -1)) if len(l) > 1 else l
gost 21.02.2016 22:28 # 0
Irdis 24.02.2016 22:44 # +3
cykablyad 22.02.2016 12:52 # −1
j123123 22.02.2016 13:40 # 0
bormand 22.02.2016 16:20 # −1
P.S. Сгенерённый код случаем не экспоненциально растёт от N?
Jatana 23.02.2016 11:54 # −3
Код работает за K * N * log(N).
Где K константа примерно равная 10.
Soul_re@ver 22.02.2016 16:21 # +1
Rodegast 23.02.2016 22:02 # +1
Patriarh_Kirill 23.02.2016 22:09 # 0
Propovednik_01 23.02.2016 23:40 # +3
Hasan 21.03.2016 14:45 # 0
return qsort([x for x in l if x < l[0]]) + [x for x in l if x == l[0]] + qsort([x for x in l if x > l[0]]) if l else []
bormand 21.03.2016 18:32 # 0
kegdan 21.03.2016 18:40 # 0
Hasan 22.03.2016 06:58 # +1
тоже вариант
bormand 22.03.2016 07:24 # 0
kegdan 22.03.2016 07:25 # 0
1024-- 22.03.2016 10:27 # 0
LispGovno 22.03.2016 11:21 # 0
Чувак, в питоне встроенный алгоритм сортировки не квик сорт, а timsort
kegdan 22.03.2016 12:02 # 0
guest 22.03.2016 14:10 # +1
а иной нет
LispGovno 22.03.2016 14:20 # 0
Ну и
гость тащемто прав. Олсо я тут задумался, а стабилен ли квиксорт в STL... Я столько кода на него завязал уже, а никогда об этом не задумывался... Вот жеж блин...
roman-kashitsyn 22.03.2016 14:28 # 0
LispGovno 22.03.2016 14:32 # 0
Jatana 21.03.2016 20:21 # 0
dxd 22.03.2016 11:03 # 0