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

Вставка Сортировать в Python

В этом руководстве мы узнаем о вставке сортировки в Python, алгоритм сортировки, который работает очень похожи на то, как мы сортируем вещи в реальной жизни. Давайте

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

В этом руководстве мы узнаем о вставке сортировки в Python, алгоритм сортировки, который работает очень похожи на то, как мы сортируем вещи в реальной жизни. Давайте начнем.

Алгоритм сортировки вставки

Если у вас есть набор карт, пронумеровал от 1 до 10, которые перетасовываются, и вас просят отсортировать их, вы, вероятно, возьмете каждую карту один за другим и вставьте их в другую сортировку в их правильном положении.

Подобно таким, как мы склонны к сортировкам, вставьте сорт, поддерживает отсортированный раздел в данной последовательности, принимает один элемент из несортированного раздела, а Вставляет Это в его правильное положение в отсортированном разделе.

В начале имеется только один элемент в отсортированном разделе, который является самым первым (отсортированный раздел находится в начале списка).

Отслеживаем отслеживание того, куда начинается несортированный раздел, используя индекс, а царствующий раздел начинается со второго элемента, поэтому индекс должен быть 1 (в случае Python).

Теперь мы возьмем первый элемент из несортированного раздела (элемент в Щебечном индексе) и попробуйте найти его положение в отсортированном разделе.

Мы сделаем это путем последовательно сравнения его с каждым элементом в отсортированном разделе, пока мы не найдем элемент, который меньше (если список восходит) или больше (если список уходит), чем новый элемент.

Далее мы вставляем его в положение и перемещайте все отсортированные элементы один раз, чтобы приспособиться к новым элементе. Процесс повторяется до тех пор, пока весь массив не будет отсортирован.

Вставка Сортировать в Python

Алгоритм в Python будет выглядеть что-то подобное:

def insertion_sort(lst):
    for i in range(1, len(lst)):
        for j in range(i - 1, -1, -1):
            if(lst[j] > lst[j + 1]):
                lst[j], lst[j + 1] = lst[j + 1], lst[j]

Обратите внимание, что функция принимает в списке и выполняет сортировочное вместо. Тем не менее, довольно просто изменить алгоритм, чтобы вместо этого вернуть сортированный список.

Понимание алгоритма сортировки вставки

Давайте попробуем запустить этот алгоритм на примере, чтобы увидеть, как это работает.

  • Скажем, данный список: 12, 16, 11, 10, 14, 13.
  • Размер данного списка: 6
  • Сортировка в растущем порядке.
  • Теперь Я Поедет от 1 до 5, и поэтому все элементы от 16 до 13 будут вставлены в их правильное положение.
  • Внутри первой петли J пойдет из Я - 1 до 0, так что он отвечает за поиск правильной позиции. J Перейдем к списку вместе с выбранным элементом, поскольку он пытается найти его правильное положение.
  • Далее внутри мы будем сравнивать товар в J С выбранным элементом (который всегда будет на J + 1 ), а если элемент на J больше, позиции J и J + 1 будет поменяться, и предмет будет двигаться назад.
  • После этого J будет уменьшаться на 1, и он убедится, что выбранный элемент всегда находится в положении J + 1 Отказ
  • Наконец, товар на J больше не будет больше, чем выбранный элемент, и выбранный элемент переместится в его правильное положение, и оно закончится внутренний цикл.
  • Внешняя петля теперь сделает то же самое с следующим элементом.

Изменения в последовательности будут выглядеть что-то подобное: 12 , 16 , 11, 10, 14, 13 12 , 11 , 16 , 10, 14, 13 11 , 12 , 16 , 10, 14, 13 11 , 12 , 10 , 16 , 14, 13 11 , 10 , 12 , 16 , 14, 13 10 , 11 , 12 , 16 , 14, 13 10 , 11 , 12 , 14 , 16 13 10 , 11 , 12 , 14 , 13 , 16 10 , 11 , 12 , 13 , 14 , 16 10 , 11 , 12 , 13 , 14 , 16.

  • Предметы в зеленом шоу показывают, что они находятся в их правильном положении в отсортированном разделе.
  • Предметы в красных сортируются, когда они перемещаются налево на их правильное положение.
  • Рассказуемые элементы являются несортированным разделом списка.

Выход

Запуск того же списка на алгоритме, он даст следующий результат:

Пример сортировки вставки

Заключение

В этом руководстве мы увидели, как вставка очень похожа на то, как мы сортируем вещи в реальной жизни, мы обсудили алгоритм, который он использует и реализовал вставку в Python.

После этого мы обсуждали, как работает алгоритм, и сухой пробел алгоритм на несортированном примере. Наконец, мы проверили сухой пробег, используя фактическую вывод кода. Сортировка вставки, как Сортировка пузыря Также имеет сложность O (N 2 ).

Настолько похож на это, если размер ввода удвоится, время, необходимое для выполнения, увеличивается в четыре раза, и если вход утроился, время, которое требуется для выполнения, увеличивается в девять раз.

Это делает алгоритм неэффективным для практического использования, но это очень интуитивный алгоритм для реализации.

Я надеюсь, что вам понравилось узнать о вставке сортировки и увидимся в следующем руководстве.