русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Сортування масиву в Паскале. Методи сортування. Приклади

Сортування вибором в Паскале

Відшукується максимальний елемент і переноситься в кінець масиву. Потім ця операція послідовно застосовується до всіх елементів крім останнього, оскільки він знаходиться на своєму остаточному місці.

 

Приклад 11.4. Сортувати за зростанням згенерований випадковим чином масив з 10 цілих чисел з використанням методу “заміни”

Текст програми

Program up_repl;
Uses crt;
Const n =10; k1=10; k2=2*k1+1;
Type vec=array[1..n] of integer;
Var a,b,c :vec;
k,i,j,f,m :integer;
ch :char;
l :Boolean;
Begin
Repeat
ClrScr;
Randomize;
Write("Исходый масив a[i]=");
For i:=1 to n do
Begin
f:=Random(k2);
a[i]:=k1-f;
Write(a[i]:3);
End;
Writeln;
b:=a;
For k:=1 to n do
Begin
m:=100;
For i:=1 to n do
If m>b[i] then
begin
m:=b[i];j:=i;
end;
b[j]:=100; c[k]:=m
end;
Write("Впорядкований масив c[i]=");
For i:=1 to n do Write(c[i]:3);
Readln;
ch:=ReadKey;
Until ch=#27;
End.

 

Результат роботи програми

Вихідний масив a[i]= 10 -5 -9 6 -5 7 -4 10 3 6
пУпорядоченный масив c[i]= -9 -5 -5 -4 3 6 6 7 10 10

 

 

Сортування обміном (метод бульбашки) в Паскале

Послідовно порівнюються пари сусідніх елементів xi і xi+1 і, якщо xi > xi+1 то вони переставляються. Потім процес повторюється для наступної пари і т.д.

Приклад 11.5. Сортувати за зростанням згенерований випадковим чином масив з 10 цілих чисел з використанням методу “бульбашки”

Текст програми

Program up_case;
Uses crt;
Const n =10; k1=10; k2=2*k1+1;
Type vec=array[1..n] of integer;
Var a,b :vec;
k,i,f,r :integer;
ch :char;
l :Boolean;
Begin
Repeat
ClrScr;
Randomize;
Write("Вихідний масив a[i]=");
For i:=1 to n do
Begin
f:=Random(k2);
a[i]:=k1-f;
Write(a[i]:3);
End;
Writeln;
b:=a;
Repeat
l:=true;
for i:=1 to n-1 do
If b[i]>b[i+1] then
Begin
r:=b[i];b[i]:=b[i+1]; b[i+1]:=r; l:=false;
End;
Until l;
("WriteУпорядкований масив b[i]=");
For i:=1 to n do Write(b[i]:3);
Readln;
ch:=ReadKey;
Until ch=#27;
End.

 

Результат роботи програми:

Вихідний масив a[i]= 6-9-10 6 5 4 -4 -1 0 10
пУпорядоченный масив b[i]=-10 -9 -4 -1 0 4 5 6 6 10

 

Сортування вставками в Паскале

Нехай перші k елементів вже відсортовані. Береться (k+1)-й елемент і розміщується серед k впорядкованих елементів так, щоб впорядкованими виявилися вже k+1 перших елементів. Цей метод застосовується при k 1 n-1.

Просмотров: 6685

Повернутися в зміст:Алгоритмічні мови





Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн