Рубрики
Без рубрики

Алгоритм Quicksort в Python

Для кодер, понимание алгоритма Quicksort – это все равно что зная секрета 42 — либо вы получаете, или вы не принадлежите к клубу. Если вы тоже не знаете, давайте работать на первом! Алгоритм Quicksort – Реализация Python Def QSORT (L): # Пустой список отсортирован по умолчанию, если l == … Алгоритм Quicksort в Python Подробнее »

Автор оригинала: Chris.

Для кодера, понимание алгоритма Quicksort – это все равно что знание секрета 42 – либо вы получаете его, или вы не принадлежите к клубу. Если вы тоже не знаете, давайте работать на первом!

Алгоритм Quicksort – реализация Python

def qsort(L):

    # The empty list is sorted by default
    if L == []:
        return []

    # Pivot is first element
    pivot = L[0:1]
    
    # Sort elements that are smaller than pivot    
    left = qsort([x for x in L[1:] if x < L[0]])

    # Sort elements that are larger or equal than pivot
    right = qsort([x for x in L[1:] if x >= L[0]])

    # Concatenate the three parts to the sorted list
    # assuming left and right are already sorted recursively
    return left + pivot + right


print(qsort([0,33,22]))

Алгоритм – это вариант популярных QuickSort. алгоритм. Функция qsort. сортирует то список . Но почему?

Быстрая объяснение

QuickSort выбирает элемент поворота из списка. В фрагменте кода он выбирает первый элемент списка, используя Индексирование , то есть, Л [0] Отказ

  • Затем алгоритм перемещает все элементы, меньшие, чем поворот на левую сторону.
  • Аналогично, он перемещает элементы, которые больше или равны, чем поворачивается с правой стороны.

Это повторяется рекурсивным способом слева и правильных списках.

Предположим, вы создаете новый список следующим образом. Вы положили все элементы, меньшие повороты слева, затем поворот, затем все элементы, которые больше или равны повороту справа. Полученный список чувствует немного более отсортированно, верно? Если бы два сублиста были уже отсортированы, список будет идеально отсортирован. Это где рекурсивный звонок QSort вступает в игру. Требуется проблема сортировки каждого сублиста, применяя ту же схему поворота и рекурсии в сублиста.

Вот визуальное объяснение, я подготовил как часть моей книги Python One-listers :

Интерактивный переводчик QuickSort.

Вы можете проверить этот код в нашем интерактивном оболочке кода:

Упражнение : Попробуйте сортировать строковый список – это работает?

Код головоломки Quicksort.

Вот головоломка кода, касающаяся алгоритма Quicksort, которую вы можете наслаждаться, щелкните по изображению, чтобы решить его в нашем интерактивном приложении головоломки Finxter:

Вы мастер-кодер? Проверьте свои навыки сейчас!

Связанное видео.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/daily-python-puzzle-quicksort-agorithm/”