Сортировка Хана — различия между версиями
Строка 10: | Строка 10: | ||
{{Определение | {{Определение | ||
|id=def1. | |id=def1. | ||
− | |Алгоритм сортирующий <tex>n</tex> целых чисел из множества {0, 1, ..., <tex>m</tex> - 1} называется консервативным, если | + | |definition= |
− | + | Алгоритм сортирующий <tex>n</tex> целых чисел из множества {0, 1, ..., <tex>m</tex> - 1} называется консервативным, если число бит, используемое для хранения данных целых чисел является <tex>O(log(m + n))</tex>. Если используется большее число бит, то алгоритм не консервативный. | |
}} | }} |
Версия 21:01, 10 июня 2012
Сортировка Хана (Yijie Han) — сложный алгоритм сортировки целых чисел со сложностью
, где — количество элементов для сортировки.Алгоритм
Алгоритм построен на основе экспоненциального поискового дерева (далее - Э.П.дерево) Андерсона (Andersson's exponential search tree). Сортировка происходит за счет вставки целых чисел в Э.П.дерево.
Andersson's exponential search tree
Э.П.дерево с
листьями состоит из корня и (0< <1) Э.П.поддеревьев, в каждом из которых листьев; каждое Э.П.поддерево является сыном корня . В этом дереве уровней. При нарушении баланса дерева, необходимо балансирование, которое требует времени при вставленных целых числах. Такое время достигается за счет вставки чисел группами, а не по одиночке, как изначально предлагает Андерссон.Определения
Определение: |
Алгоритм сортирующий | целых чисел из множества {0, 1, ..., - 1} называется консервативным, если число бит, используемое для хранения данных целых чисел является . Если используется большее число бит, то алгоритм не консервативный.