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

Впорядкування обмінами

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

program VporObmn;

uses

Crt;

var

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

b:real;

i,k,n:integer;

begin

ClrScr;

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

Readln(n);

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

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

Writeln;

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

For k:=n downto 2 do

{Перенос поточного максимального значення на k-ту позицію}

For i:=1 to k-1 do

if a[i]>a[i+1] then

begin

b:=a[i];

a[i]:=a[i+1];

a[i+1]:=b

end;

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

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

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

Writeln;

ReadKey;

end.