Сортировка вставкой

Алгоритм сортировки вставкой или включением подобен упорядочению колоды карт. В процессе сортировки массив разделяется на две части: отсортированную a[1..i-1] и не отсортированную a[i..n]. Поочередно из неупорядоченой части массива выбирается элемент a[i] и вставляется в нужную позицию j упорядоченной части.

В начале работы алгоритма все элементы, за исключением первого, считаются неупорядоченными. Затем с помощью оператора цикла организуется n-1 проход массива:

for i:=2 to n do …

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

j:=i;

while (a[j]<a[j-1]) and (j>1) do

begin Swap(a[j],a[j-1]); Dec(j) end;

Можно исключить условие достижения индексом j единицы путем введения фиктивного элемента a[0]=- , т.е. элемента, значение которого меньшего любого элемента массива a[1..n].

Составьте процедуру сортировки методом вставки и проведите тестирование программы, сравниваю полученные результатами с полученными Вами ранее.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: