Курсовая работа: Порівняльний аналіз ефективності та складності швидких алгоритмів сортування масивів

for j:=i+1 to N do

if a[j]<x then begin x:=a[j]; k:=j end;

x:=a[k]; a[k]:=a[i]; a[i]:=x

end

End;

Аналіз прямого вибору. Очевидно, що кількість порівнянь ключів Ci на i -ому виборі не залежить від початкового розміщення елементів і дорівнює N- i . Таким чином

Кількість же перестановок залежить від стартової впорядкованості масиву. Це стосується переприсвоєнь у внутрішньому циклі по j при пошуку найменшого ключа.

В найкращому випадку початково впорядкованогомасиву Mi =4 ; в найгіршому випадку зворотно впорядкованогомасиву Mi =Ci +4 ; для довільного масиву рівномовірно можливе значення Mi =Ci /2+4. Тому для оцінки ефективності алгоритму по перестановках можна скористатися наступними співвідношеннями:

;

;

.

Як і в попередньому випадку алгоритм прямого вибору описує процес стійкого сортування.

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

Даний метод базується на повторенні етапів порівняння сусідніх ключів при русі вздовж масиву. Якщо наступний елемент виявиться меншим від попереднього, то відбувається обмін (звідси і назва методу). Таким чином, при русі з права наліво за один етап найменший ключ переноситься на початок масиву. Зрозуміло, що кожен наступний прохід можна закінчувати після позиції знайденого на попередньому етапі мінімального елемента, оскільки всі елементи перед ним вже впорядковані. Розглядуваний процес дещо нагадує виштовхування силою Архімеда бульбашки повітря у воді. Тому цей алгоритм ще називають "бульбашковим" сортуванням.

Програмна реалізація методу прямого обміну або "бульбашки" матиме вигляд процедури:

Procedure Buble_Sort;

Var

i, j : integer; x : basetype;

Begin

for i:=2 to N do

for j:=N downto i do

if a[j-1]>a[j] then begin x:=a[j]; a[j]:=a[j-1]; a[j-1]:=x end

End;

Якщоетапипорівняннятаобмінупроводитизліванаправо, товідбуватиметьсявиштовхуваннянайбільшогоелементавкінецьмасиву. Очевидно такий процес відповідає опусканню під дією сили тяжіння камінця у воді. Назвемо цей алгоритм "камінцевим" сортуванням :

Procedure Stone_Sort;

Var

i, j : integer; x : basetype;

Begin

К-во Просмотров: 340
Бесплатно скачать Курсовая работа: Порівняльний аналіз ефективності та складності швидких алгоритмів сортування масивів