Сортировка Хана — различия между версиями
| Строка 8: | Строка 8: | ||
==Необходимая информация== | ==Необходимая информация== | ||
| + | {{Определение | ||
| + | |id=def1. | ||
| + | |definition= | ||
| + | Контейнер - объект определенного типа. Например __int32, __int64, и т.д. | ||
| + | }} | ||
{{Определение | {{Определение | ||
|id=def2. | |id=def2. | ||
Версия 21:22, 10 июня 2012
Сортировка Хана (Yijie Han) — сложный алгоритм сортировки целых чисел со сложностью , где — количество элементов для сортировки.
Алгоритм
Алгоритм построен на основе экспоненциального поискового дерева (далее - Э.П.дерево) Андерсона (Andersson's exponential search tree). Сортировка происходит за счет вставки целых чисел в Э.П.дерево.
Andersson's exponential search tree
Э.П.дерево с листьями состоит из корня и (0<<1) Э.П.поддеревьев, в каждом из которых листьев; каждое Э.П.поддерево является сыном корня . В этом дереве уровней. При нарушении баланса дерева, необходимо балансирование, которое требует времени при вставленных целых числах. Такое время достигается за счет вставки чисел группами, а не по одиночке, как изначально предлагает Андерссон.
Необходимая информация
| Определение: |
| Контейнер - объект определенного типа. Например __int32, __int64, и т.д. |
| Определение: |
| Алгоритм сортирующий целых чисел из множества {0, 1, ..., - 1} называется консервативным, если длина контейнера (число бит в контейнере), является . Если длина больше, то алгоритм не консервативный. |