сортировка с линейной сложностью

From
Roman Kukushkin (2:5025/37.216)
To
Dmitriy K.
Date
2002-08-01T20:54:36Z
Area
RU.ALGORITHMS
Как поживаете, Dmitriy ?

 Среда Июль 31 2002 в 18:20 Dmitriy K. писал Ilya Teterin:

 IT>> Существует ли алгоритм сортировки с линейной вычислительной
 IT>> сложностью, если известно, что сортируемые данные - случайная
 IT>> величина с равномерным распределением?

 DK> Существует. Но человечеству пока не известна ;-)
Ну, так уж и не известна? Может попробовать стать знаменитым ;) ... А у Кнута смотреть не пробовали?
В общем идею могу предложить такую:
1) отрезок распределения делится на равные по длине сегменты общим числом равным числу сортируемых данных (или можно в конечное число раз меньше);
2) за один проход раскидываем все сортируемые числа по сегментам;
3) для каждого сегмента выполняем сортировку любым методом;
4) склеиваем получившиеся сегменты.
Пункты 1,2,4 точно не сложнее линейного. Пункт 3 скорей всего линейный (так мне подсказывает моя интуиция, если кто не верит, можно проверить, подсчитав мат. ожидание числа действий.


 DK> Зависит от того, что за "данные" и что за "величина".
Внимательнее читай текст письма, на которое отвечаешь.

 DK> P.P.S. В инете проскакивала как-то информация о O(log(log(log(n))))
 DK> сортировке... Типа, для больших n ;) . Могу поискать на винте.
Не верю. Чтобы отсортировать массив, нужно хотя бы посмотреть на каждое число, что дает ассимптотику не лучше O(n)

                C уважением, Roman Kukushkin.

E-mail krv@vudor.vrn.ru

---
 * Origin:  (2:5025/37.216)