Implementation (Part 2)
Урок 6 из 9 курса Сортировка вставками — серия DSA на Coddy.
Сценарий: Сортировка [5, 2, 9, 1, 5]
Шаг 1: Начальное состояние
- Исходный массив: [5, 2, 9, 1, 5]
- Представьте это как нашу руку с картами (или массив чисел).
Шаг 2: Первый элемент (i=1, key=2)
- Мы начинаем со второй карты (элемента): key = 2.
- Сравниваем 2 с 5 (единственным отсортированным элементом на данный момент).
- Так как 2 меньше, мы сдвигаем 5 вправо и вставляем 2 на его место.
- Обновленный массив: [2, 5, 9, 1, 5]
Шаг 3: Второй элемент (i=2, key=9)
- Переходим к следующей карте: key = 9.
- Сравниваем 9 с 5.
- Так как 9 больше, сдвиг не требуется.
- Обновленный массив: [2, 5, 9, 1, 5] (без изменений)
Шаг 4: Третий элемент (i=3, key=1)
- Переходим к следующей карте: key = 1.
- Сравниваем 1 с 9, затем с 5.
- Сдвигаем 9 и 5 вправо, освобождая место для 1.
- Обновленный массив: [1, 2, 5, 9, 5]
Шаг 5: Четвертый элемент (i=4, key=5)
- Переходим к следующей карте: key = 5.
- Сравниваем 5 с 9.
- Так как 5 меньше, сдвиг не требуется.
- Обновленный массив: [1, 2, 5, 9, 5] (без изменений)
Шаг 6: Пятый элемент (i=5, key=5)
- Переходим к последней карте: key = 5.
- Сравниваем 5 с 9.
- Так как 5 меньше, сдвиг не требуется.
- Обновленный массив: [1, 2, 5, 5, 9]
Конечный результат:
- Отсортированный массив: [1, 2, 5, 5, 9]
На каждом шаге мы выбираем карту (элемент), сравниваем её с уже отсортированными и помещаем в нужное место, при необходимости сдвигая остальные. Мы повторяем этот процесс до тех пор, пока весь массив не будет отсортирован.
Задание
ЛегкоТеперь реализуйте внутренний цикл, который выполняет сортировку для каждого элемента.
Завершите сортировку внутри функции insertionSort.
Функция также должна вывести элементы массива в конце, по одному, разделяя их новой строкой.
Используйте предыдущие уроки и подсказку в качестве справочного материала :)
Попробуйте сами
def insertionSort(arr):
for i in range(1, len(arr)):
key = arr[i]
print(key)
Все уроки раздела Сортировка вставками — серия DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)