Содержание
- 2. Цифровая сортировка (DigitalSort) Вначале числа из списка S распределяются по очередям, причём номер очереди определяется последней
- 3. В общем случае: Дана последовательность из S чисел, представленных в m-ичной системе счисления. Каждое число состоит
- 4. Пример. Необходимо сортировать последовательность целых чисел типа longint (32 бита). Сколько потребуется очередей? Можно рассматривать каждый
- 5. Укрупненная схема алгоритма DO ( j := L , L–1 , …, 1 ) по j
- 6. Рассмотрим основные операции: 1) Определение j-той цифры ключа сортировки Задача: выделение произвольного байта в поле Data
- 7. Рассмотрим особенности реализации цифровой сортировки для сложных структур: Пример: struct tData { char Name [5]; long
- 8. sizeof (tData) = 10 байтов старш. млад. млад. старш. name phone Используем индексацию для удобства выбора
- 9. Тогда KDI [j] - номер байта, соответствующего j-той цифре ключа сортировки, j := L, L–1, …,1.
- 10. 2) Соединение очередей. Имеется очередь Q (возможно, пустая) и непустая очередь S. 1) S.tail -> next
- 11. Алгоритм на псевдокоде DO ( j := L, L-1, … 1 ) DO ( i :=
- 12. Алгоритм на псевдокоде (продолжение) p := & S DO ( i := 0, 1, … 255
- 13. Трудоемкость метода T = O( L( n + m ) ) Замечания: 1) Цифровая сортировка устойчива.
- 15. Скачать презентацию