procedure SortByInsert(a: array of integer);
// сортировка простыми вставками
begin
for var i := 1 to a.Length - 1 do
if a[i - 1] > a[i] then begin
var (p, j) := (a[i], i - 1);
while (j >= 0) and (a[j] > p) do
(a[j + 1], j) := (a[j], j - 1);
a[j + 1] := p
end
end;
var a := ArrRandom(15, -50, 50); a.Println;
SortByInsert(a); a.Println
end.
procedure SortByInsert(a: array of integer);
// сортировка простыми вставками
begin
for var i := 1 to a.Length - 1 do
if a[i - 1] > a[i] then begin
var (p, j) := (a[i], i - 1);
while (j >= 0) and (a[j] > p) do
(a[j + 1], j) := (a[j], j - 1);
a[j + 1] := p
end
end;
begin
var a := ArrRandom(15, -50, 50); a.Println;
SortByInsert(a); a.Println
end.
Пример-47 -37 -9 44 7 43 44 -10 5 -12 4 -24 7 21 -47-47 -47 -37 -24 -12 -10 -9 4 5 7 7 21 43 44 44