Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проги, ЛЕКЦИИ / Программирование Лекция 5 массивы.pps
Скачиваний:
37
Добавлен:
12.02.2015
Размер:
613.38 Кб
Скачать

Быстрая сортировка (метод Хоара)

a1 a2 a3an-1 an

i:=i+1 j:=right

Быстрая сортировка (метод Хоара)

a1 a2 a3an-1 an

i:=i+1 j:=right

ai>aj ОБМЕН

Быстрая сортировка (метод Хоара)

a1 a2 anan-1 a3

i

j=j-1

 

Фиксируем i

 

Пока ai<aj j:=j-1

Быстрая сортировка (метод Хоара)

a1 a2

a…

a

a3

 

n

 

n-1

ij:=j-1

ai>aj ОБМЕН

Быстрая сортировка (метод Хоара)

a1 a2 a3… ac …an-1 an

left

j=i

right

Повторяем пока не i=j=c

Рекурсивно применить к правой [c,right] и левой [left,c] сторонам

Пример

1 6 8 4 2 3

i

j

 

Пример

1 3 8 4 2 6

i

j

 

Пример

1 2 8 4 3 6

i j

Пример

1 2 3 4 8 6

i j

Быстрая сортировка

if p<q then {p,q - индексы начала и конца сортируемой части массива}

begin

r:=A[p]; {r:=A[random(q-p)+p]; -вероятностный метод Хоара} i:=p-1;

j:=q+1; while i<j do

begin

 

repeat

i:=i+1; until A[i]>=r;

repeat

j:=j-1; until A[j]<=r;

if i<j then

begin

T:=A[i]; A[i]:=A[j]; A[j]:=T; end;

end;

 

end;