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

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

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

44. Быстрая двоичная сортировка.

Бинарная быстрая сортировка по старшему разряду. На каждом уровне рекурсии рассматриваем старший бит из еще нерассмотренных. Числа с нулевым битом - в левую часть подмассива, с единичным - в правую.

Закончили - делаем то же самое со след. битом в каждом из подмассивов.

Алгоритм:

1.последовательно вставляем элементы исходно массива в БДП

2.выполняем симметричный обход сформированного дерева 3. при посещении узлов – копируем содержимое в выходной массив Время работы алгоритма:

O(log2n) – лучший; O(n) – худший; O(nlog2n) – вставок элементов. Минус – повышенные требования к объему памяти.

Алгоритм Sort(A[1..n, first, last,d)

1.if (first<last) and (d>0) then

2.I <- first-1

3.J<-last+1

4.While i<j do

5.Repeat j<-j-1

6.Until ((digit(A[i],d)=0) or (j<=i)

7.Repeat i<-i+1

8.Until ((digit(A[i],d)=1) or (i>=j)

9.If i<j then A[i]<->A[j]

10.End while

11.SortB(A[1..n], first,j,d-1)

12.SortB(a[1..n],j+1,last,d+1)

13.End if