Другие языки программирования и технологии

Сортировка простыми вставками.

Задание: Реализовать сортировку простыми вставками случайного набора данных. (на паскале) Пыталась разобрать эту сортировку по книжке. Вроде получилось. Но дело в том, что я всё равно мало что поняла. Поняла в принципе что из себя представляет сама эта сортировка. Но вот написать в целом работающую программу не получается. Помогите. Как будет выглядеть эта прога. Но самое главное объясните пожалуйста всё пошагово и не научными словами (что, как и для чего что-либо делается при написании программы) P.S.: а то сижу уже часа полтора, примеры разбираю, а понять всё равно не могу. Уже мозг кипит.
Вообщето всё очень просто:
const
K = 10;
var
A : array[1..K] of Integer;
i, j, Key : Integer;
....
{ сама сортировка }
for i := 2 to K do
begin
Key := A[i]; { берём ключевой элемент массива }
j := i - 1; { будем сравнивать начиная с пердыдущего }
while (j > 0) and (A[j] > Key) do { пока ключевой элемент < j-ого }
begin { j-тый элемент сдвигаем в право }
A[j + 1] := A[j];
j := j - 1;
end;
A[j + 1] := Key; { ключевой элемент помещаем в освободившуюся ячейку массива }
end;
Принцип работы алгоритма:
берём массив
[8, 7, 5, 6, ..]
начинаем искать место для 2 элемента в сторону начала массива
key = 7
key < 8, значит 8 двигаем на 1 позицию к концу массива
[х, 8, 5, 6, ..]
достигли начала, значит key сохраняем в первую позицию
[7, 8, 5, 6, ..]
начинаем искать место для 3 элемента в сторону начала массива
key = 5
key < 8, значит 8 двигаем на 1 позицию к концу массива
[7, x, 8, 6, ..]
key < 7, значит 7 двигаем на 1 позицию к концу массива
[x, 7, 8, 6, ..]
достигли начала, значит key сохраняем в первую позицию
[5, 7, 8, 6, ..]
начинаем искать место для 4 элемента в сторону начала массива
key = 6
key < 8, значит 8 двигаем на 1 позицию к концу массива
[5, 7, x, 8, ..]
key < 7, значит 7 двигаем на 1 позицию к концу массива
[5, x, 7, 8, ..]
key > 5, значит key сохраняем в предыдущую позицию
[5, 6, 7, 8, ..]
Вот так!
Сергей Немировский
Сергей Немировский
81 509
Лучший ответ