русс | укр

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

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


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


Сортування вибором


Дата додавання: 2014-11-27; переглядів: 899.


 

Для сортування за зростанням знаходимо в масиві елемент з мінімальним значенням на інтервалі від 1-го елемента до n-го (останнього елемента) і міняємо його місцями з першим елементом. На другому кроці знаходимо елемент з мінімальним значенням на інтервалі від 2-го до n-го елемента і міняємо його місцями з другим елементом.

І так далі для всіх елементів до (n -1)-го.

Програма, яка реалізує метод вибору, буде мати наступний вигляд:

 

program Selectionsort;

Var

Vector : array [1..50] of real ;

B : real;

Min : Real;

Imin,s, i, n : Integer;

 

begin

Writeln(' Введіть розмірність масиву: ');

Readln(n);

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

for i : =1 to n do Read (Vector[i]) ;

for s : = 1 to n - 1 do

begin

{пошук мінімального елемента в діапазоні від S - го елемента до n - го}

Min : = Vector [S];

Imin : = S;

for i : = S + 1 to n do

if Vector [i] < Min then

begin

Min : = Vector [i];

Imin : = i

end;

{Обмін місцями мінімального і S - го елементів}

Vector [Imin] : = Vector [S];

Vector [S] : = Min;

end;

Writeln (' Відсортований масив : ');

for i : = 1 to n do

Write (Vector [i] : 8 : 2);

writeln;

end.

 

 

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

 

Зліва направо по черзі порівнюються два сусідніх елемента, і якщо їх взаємне розташування не відповідає заданим критеріям впорядкованості, то вони міняються місцями. Далі беруться два наступних сусідніх елемента і так далі до кінця масиву.

Після одного такого проходу на останній n - ой позиції масиву буде стояти максимальний елемент ("виплив" першої "бульбашки"). Оскільки максимальний елемент вже стоїть на своїй останній позиції, то другий прохід обмінів виконується до n-1-го елементами та. І так далі. Всього потрібно n-1 прохід.

Програма, яка реалізує метод обміну ("бульбашки"), буде мати наступний вигляд:

 

program Bubblesort;

Var

Vector : array [1..50] of real ;

B : real;

i,k,n: integer;

begin

Writeln(' Введіть розмірність масиву: ');

Readln(n);

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

for i : = 1 to n do

Read (Vector [i]);

for k : = n downto 2 do

for i : = 1 to k-1 do

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

begin

B : = Vector [i];

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

Vector [i + 1] : = B

end;

Writeln (' Відсортований масив : ');

for i : = 1 to n do

Write (Vector [i] : 8 : 2);

Writeln;

end.


<== попередня лекція | наступна лекція ==>
Сортування вставкою | Порядок виконання роботи


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