1. Python / Говнокод #19508

    −50

    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, 21 Февраля 2016

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

    • программа из одной строчки ни python
      Ответить
      • я бы там всё в одну строчку писал. а то можно накосячить с отступами (пробелы/табы че там ещё), оно поди и не с интерпретируется ещё
        Ответить
    • Нихуя Не Быстрая Сортировка на питоне в одну строчку
      Ответить
    • http://pastebin.com/9t4FH24t вот вам нахождение максимального числа на Си в одну строчку (макросы не считаются)
      Ответить
      • Ебашь квиксорт теперь, чё уж.

        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 []
      Ответить
      • def qsort(list):
            return sorted(list)
        Ответить
        • /:~
          Ответить
        • qsort = sorted
          тоже вариант
          Ответить
          • Гениально. Короче, наверное, уже не сделать.
            Ответить
            • q=sorted
              Ответить
            • Наверно дальше уже надо язык под задачу выбирать. Скажем, сделать аналог HQ9+ с сортировкой в 1 символ.
              Ответить
          • >qsort = sorted
            Чувак, в питоне встроенный алгоритм сортировки не квик сорт, а timsort
            Ответить
            • who cares?
              Ответить
              • ну типа один стабилен
                а иной нет
                Ответить
              • Как кто? У меня появляется чувство незавершенности, когда кто-то называет один алгоритм сортировки именем другого. Забыл как этот синдром\явление называется. Меня аж выворачивает. Это знаешь, как вилкой по стеклу... Хочется убивать.

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

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