Змея / Говнокод #19508 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 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

Быстрая Сортировка на питоне в одну строчку

Запостил: Jatana Jatana, (Updated )

Комментарии (25) RSS

    • я бы там всё в одну строчку писал. а то можно накосячить с отступами (пробелы/табы че там ещё), оно поди и не с интерпретируется ещё
      Ответить
  • Нихуя Не Быстрая Сортировка на питоне в одну строчку
    Ответить
    • Ебашь квиксорт теперь, чё уж.

      P.S. Сгенерённый код случаем не экспоненциально растёт от N?
      Ответить
      • Это и есть квиксорт

        Код работает за K * N * log(N).
        Где K константа примерно равная 10.
        Ответить
    • А теперь прогони любую программу через препроцессор и замени переносы строк на пробелы. Что угодно в одну строчку.
      Ответить
  • А зечем нормальную функцию сделали? Надо было лямбду использовать.
    Ответить
    • Нехристь!.. Лямбды поминаешь, грехъ на себя принимаешь!.. Покайся, [DjMode]пока-пока-[/DjMode]покайся, греховодник!...
      Ответить
  • def qsort(l=[]):
    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 []
    Ответить
          • Наверно дальше уже надо язык под задачу выбирать. Скажем, сделать аналог HQ9+ с сортировкой в 1 символ.
            Ответить
        • >qsort = sorted
          Чувак, в питоне встроенный алгоритм сортировки не квик сорт, а timsort
          Ответить
            • Как кто? У меня появляется чувство незавершенности, когда кто-то называет один алгоритм сортировки именем другого. Забыл как этот синдром\явление называется. Меня аж выворачивает. Это знаешь, как вилкой по стеклу... Хочется убивать.

              Ну и
              гость тащемто прав. Олсо я тут задумался, а стабилен ли квиксорт в STL... Я столько кода на него завязал уже, а никогда об этом не задумывался... Вот жеж блин...
              Ответить
    • если брать нулевой элемент можно подобрать тест на котором сортировка будет работать за O(N * N) а с рандомным элементом в среднем за N logN
      Ответить
      • Но можно так подобрать сид для теста, чтобы всё равно было O(N^2)
        Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8