DAA - сортировка вставкой
Сортировка вставкой - это очень простой метод сортировки чисел в порядке возрастания или убывания. Этот метод соответствует инкрементному методу. Это можно сравнить с техникой сортировки карт во время игры.
Числа, которые необходимо отсортировать, известны как keys. Вот алгоритм метода сортировки вставками.
Algorithm: Insertion-Sort(A)
for j = 2 to A.length
key = A[j]
i = j – 1
while i > 0 and A[i] > key
A[i + 1] = A[i]
i = i -1
A[i + 1] = key
Анализ
Время работы этого алгоритма очень сильно зависит от заданного ввода.
Если данные числа отсортированы, этот алгоритм работает в O(n)время. Если заданные числа находятся в обратном порядке, алгоритм работает вO(n2) время.
пример
Unsorted list: |
|
1st iteration:
Ключ = a [2] = 13
а [1] = 2 <13
Своп, без свопа |
|
2nd iteration:
Ключ = a [3] = 5
a [2] = 13> 5
Поменять местами 5 и 13 |
|
Далее a [1] = 2 <13
Своп, без свопа |
|
3rd iteration:
Ключ = a [4] = 18
a [3] = 13 <18,
a [2] = 5 <18,
а [1] = 2 <18
Своп, без свопа |
|
4th iteration:
Ключ = a [5] = 14
а [4] = 18> 14
Поменять местами 18 и 14 |
|
Далее, a [3] = 13 <14,
a [2] = 5 <14,
а [1] = 2 <14
Итак, без свопа |
|
В заключение,
the sorted list is |
|