| virt |
15.11.2004 11:09
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: 6 |
Описание и реализация алгоритмов:
****** ****** Сравнительная скорость работы некоторых нижеприведенных алгоритмов сортировки: Примечание: size: размер сортируемой последовательности n: количество сортировок для замера времени *: RadixSort в последнем тесте прогонялся при параметрах: size=21000; n=100 |
![]() ![]() |
| volvo |
26.12.2004 22:28
Сообщение
#2
|
|
Гость |
Распределяющая сортировка - RadixSort - цифровая - поразрядная
Пусть имеем максимум по k байт в каждом ключе (хотя за элемент сортировки вполне можно принять и что-либо другое, например слово - двойной байт, или буквы, если сортируются строки). k должно быть известно заранее, до сортировки. Разрядность данных (количество возможных значений элементов) - m - также должна быть известна заранее и постоянна. Если мы сортируем слова, то элемент сортировки - буква, m = 33. Если в самом длинном слове 10 букв, k = 10. Обычно мы будем сортировать данные по ключам из k байт, m=256. Пусть у нас есть массив source из n элементов по одному байту в каждом. Для примера можете выписать на листочек массив source = <7, 9, 8, 5, 4, 7, 7>, и проделать с ним все операции, имея в виду m=9.
Итак, мы научились за O(n) сортировать байты. А от байтов до строк и чисел - 1 шаг. Пусть у нас в каждом числе - k байт. Будем действовать в десятичной системе и сортировать обычные числа ( m = 10 ). Цитата сначала они в сортируем по младшему на один беспорядке: разряду: выше: и еще раз: 523 523 523 088 153 153 235 153 088 554 153 235 554 235 554 523 235 088 088 554 Hу вот мы и отсортировали за O(k*n) шагов. Если количество возможных различных ключей ненамного превышает общее их число, то 'поразрядная сортировка' оказывается гораздо быстрее даже 'быстрой сортировки'! Реализация алгоритма "распределяющей" сортировки: Скачать:
RDX_SORT.PAS ( 740 байт )
Кол-во скачиваний: 2941Const |
virt Методы сортировок 15.11.2004 11:09
virt [b]Пузырьковая сортировка (простым выбором, просты... 15.11.2004 11:13
virt [b]Сортировка простой вставкой
[size=1]Скачать:
... 5.12.2004 11:55
volvo [b]Сортировка слияниями
[codefaq]Type
arrType =... 6.12.2004 17:20
volvo [b]Быстрая сортировка Хоара
Это улучшенный метод,... 6.12.2004 20:57
volvo [b]Пирамидальная - турнирная - HeapSort сортировка... 7.12.2004 18:29
klem4 Пузырьковая сортировка с просеиванием
Аналогичен ... 8.02.2005 15:32
volvo [b]Древесная сортировка (TreeSort)
Использует [ur... 20.03.2005 12:50
klem4 Сортировка методом поиска нового номера (в новый м... 12.06.2005 18:06
klem4 Метод последовательного поиска минимумов
Теория: ... 14.06.2005 16:41![]() ![]() |
|
Текстовая версия | 15.12.2025 16:29 |