Сортировка+включением


 * Сортировка прямым включением**

Идея сортировки прямым включением (программа prg4_96.asm) заключается в том, что в сортируемой последовательности masi длиной n (i = 0..n - 1) последовательно выбираются элементы начиная со второго (i< 1) и ищутся их местоположения в уже отсортированной левой части последовательности. При этом поиск места включения очередного элемента х в левой части последовательности mas может закончиться двумя ситуациями:

1) найден элемент последовательности mas, для которого masi<x; 2) достигнут левый конец отсортированной слева последовательности.

Первая ситуация разрешается тем, что последовательность mas начиная с masi раздвигается в правую сторону и на место masi перемещается х. Во второй ситуации следует сместить всю последовательность вправо и на место mas0 переместить х. В этом алгоритме для отслеживания условия окончания просмотра влево отсортированной последовательности используется прием «барьера». Суть его в том, что к исходной последовательности слева добавляется фиктивный элемент X. В начале каждого шага просмотра влево отсортированной части массива элемент X устанавливается в значение того элемента, для которого будет осуществляться поиск места вставки.

ПРОГРАММА рrg4_96 //prg4_96 - программа на псевдоязыке сортировки прямым включением //Вход: mas[n] - неупорядоченная последовательность байтовых двоичных значений. //Выход: mas[n] - упорядоченная последовательность байтовых двоичных значений. //.-......--......... ПЕРЕМЕННЫЕ INT_BYTE n=8: //количество элементов в сортируемом массиве INT_BYTE mas[n]: //сортируемый массив размерностью п (О..п-l) INT_BYTE X; //барьер INT_BYTE i=0: j=0 //индексы НАЧ_ПРОГ ДЛЯ 1:-1 ДО п-1 /Л изменяется в диапазоне О..п-l НАЧ_БЛ0К_1 //присвоение исходных значений для очередного шага X:=mas[i]: mas[0]:=X; j:=i-l ПОКА (X mas[j-l] : если x < mas[j-l]. то mov al,mas[si-l] irovmas[si],al dec si jmpcycl2 ml: mov al ,x movmas[si].al pop si incsi loop cyc!3
 * prg4_96.asm - программа на ассемблере сортировки прямым включением.

Этот способ сортировки не очень экономен, хотя логически он выглядит очень естественно.

Сложные структуры данных-[Электронный ресурс]. Режим доступа: http://exzilnetik.narod.ru/html/aeaaa12.html