logo
методичка_1_05_ВНУ

Впорядкування вставками

Переглядаючи масив a[1], a[2], … a[n], починаючи з другого, кожний новий і-ий елемент розташовуємо (вставляємо) на відповідне місце у вже впорядковану частину масиву a[1], a[2], … a[i-1]. Для цього необхідно:

а) взяти і-ий невпорядкований елемент і запам’ятати його з допомогою додаткової змінної B;

б) знайти номер j елемента впорядкованої частини масиву, під яким необхідно записати взятий невпорядкований елемент;

в) зсунути елементи від j-го до і-го вправо на одну позицію, звільнивши місце під взятий елемент;

г) встановити взятий і-й елемент на місце j-го.

Всього необхідно зробити N-1 крок.

Програма впорядкування масиву вставками.

program VporVstv;

uses

Crt;

var

a:array[1..20] of real;

b:real;

i,j,k,n:integer;

begin

ClrScr;

Writeln('Введіть довжину масиву n<=20');

Readln(n);

Writeln('Введіть поелементно масив a:');

For i:=1 to n do Read(a[i]);

{Початок реалізації методу}

For i:=2 to n do

begin

b:=a[i]; {взяття і-го елемента}

j:=1;

{пошук номера j вставки}

while b>a[j] do j:=j+1;

if j<i then

begin

{зсув елементів вправо}

for k:=i downto j+1 do a[k]:=a[k-1];

{вставка і-го елемента}

a[j]:=b;

end;

end;

{Кінець реалізації методу}

Writeln('Впорядкований масив');

For i:=1 to n do Write(a[i]:8:2);

Writeln;

Readln;

end.