Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Программа сортировки массива вставками по возрастанию (неубыванию) элементов}
- const N=10; {размерность массива}
- type Element = integer; {"заглушка" определения типа элемента массива}
- {при работе со структурированными данными }
- {(записями) тип переопределяется }
- Arr = array [0..N] of Element; {тип для определения массива, }
- {элементы которогоупорядочиваются}
- var A: Arr; {массив, элементы которого упорядочиваются }
- {Вспомогательные переменные, используемые при сортировке: }
- i, j: integer;
- x: Element;
- function Key(b: Element): integer;
- {Заглучшка функции вычисления ключа элемента массива}
- begin
- Key := b {возвращает для массива чисел само значение числа}
- end;
- begin
- writeln('Введите элементы массива:');
- for i:=1 to N do
- readln(A[i]);
- for i:=2 to N do
- begin
- {Фиксируем первый элемент в неотсортированной части, }
- {который будет включен в отсортированную часть: }
- x:=A[i];
- {Ищем позицию для включения элемента в отсортированную часть: }
- A[0] := x;{занесли в барьерный элемент перемещаемое значение}
- j := i-1; {поиск начинаем с элемента, предшествующего выбранному }
- {для вставки элементу, - с последнего элемента массива }
- {в его отсортированной части }
- {Перебираем в поисках места для вставки элементы отсортированной части, }
- {причём, пока позиция не найдена, элементы с большими ключами смещаются:}
- while Key(x) < Key(A[j]) do {сравниваем ключи для определения, найдена }
- {ли позиция, если да, выходим из цикла, }
- {нет - смещаемся к предшествующему элементу}
- begin
- A[j+1] := A[j];{"Выдавливаем" элементы массива на освобождаемое - }
- j := j-1 { место - раздвигаем отсортированную часть }
- end;
- {Включаем элемент в отсортированную часть на найденную позицию: }
- A[j+1] := x
- end;
- writeln('Отсортированный массив:');
- for i:=1 to N do
- writeln(A[i]);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement