Этот алгоритм сортировки – развитие пузырьковой сортировки. Отличия от нее заключаются в том, что при прохождении части массива, происходит проверка, были ли перестановки. Если их не было, значит, эта часть массива уже упорядочена и она исключается из дальнейшей обработки. Кроме того, при прохождении массива от начала к концу, минимальные элементы перемещаются в самое начало, а максимальный элемент сдвигается к концу массива.
Механизм алгоритма сортировки по возрастанию следующий:
Цикл завершается, когда диапазон сойдется в середине массива.
const
N = 10; // размер массива
var
i, low, high, h : Integer;
mas : array[1..N] of Integer;
begin
low := 1; // начало и конец массива
high := N - 1;
while low < high do begin
for i := low to high do // проход массива от начала к концу, перемещение большего значения
if mas[i] > mas[i+1] then begin // замена элементов местами
h := mas[i];
mas[i] := mas[i+1];
mas[i+1] := h;
end;
high := high - 1; // сокращение сортируемого диапазона от конца
for i := high downto high do // проход массива от конца к началу, перемещение меньшего значения
if mas[i] > mas[i+1] then begin // замена элементов местами
h := mas[i];
mas[i] := mas[i+1];
mas[i+1] := h;
end;
low := low + 1; // сокращение сортируемого диапазона от начала
end;
end;
Алгоритм сортировки перемешиванием (Шейкерная сортировка, двунаправленная пузырьковая сортировка)
Алгоритм заполнения шахматной доски
Алгоритм перемешивания массива
В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.