Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 35-66 / 43. Быстрая сортировка

..pdf
Скачиваний:
84
Добавлен:
11.05.2015
Размер:
193.74 Кб
Скачать

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

Среднее время работы O(n log n) . Время работы алгоритма для массива из n элементов в худшем случае может составить O(n2), на практике этот алгоритм является одним из самых быстрых.

Алгоритм:

1.из массива выбирается некоторый опорный элемент a[i]

2.запускается процедура разделения массива, которая перемещает все ключи, меньшие, либо равные a[i], влево от него, а все ключи, большие, либо равные a[i] — вправо.

3.для обоих подмассивов: если в подмассиве более двух элементов, рекурсивно запускаем для него ту же процедуру.

QuickSort(A,first, last)

1.If first<last then

2.Q<–Partition(A,first,last)

3.QuickSort(A,first, q)

4.QuickSort(A,q+1, last)

Partition

1.X<-A[first]

2.I<-first-1;

3.J<-last+1

4.While true do

5.Repeat j<-j-1

6.untilA[j]=<x

7.Repeat i<-i+1

8.untilA[j]>=x

9.if i<j then A[i}<–>A[j]

10.else rerurn j;