metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-01-06 10:40 pm

Алгоритмы сортировки

Народ развлекается забавной задачкой про stl и quicksort.
Заглянув в исходники stl, я понял, что называть это "обычным quicksort" это какое-то явное издевательство.
И еще оказалось, что обычный quicksort из дельфи работает раза в два медленнее чем этот хитрый std::sort, хотя я думаю, кроме всех оптимизаций, там еще косвенный вызов функции сравнения в дельфи свою лепту вносит.

[identity profile] x-a-e-p.livejournal.com 2009-01-06 09:51 pm (UTC)(link)
Хотя бы то, что сложность сортировки гарантированно должна быть(по стандарту) O(N*log(N)), говорит о том, что это не quicksort.

[identity profile] x-a-e-p.livejournal.com 2009-01-06 10:57 pm (UTC)(link)
Ну я скорее спорил насчёт quicksort

[identity profile] tonal.myopenid.com (from livejournal.com) 2009-01-07 07:27 am (UTC)(link)
по сравнению с делфовой версией там вроде только 2 заметных улучшения:
1. Инлайнинг функции сравнения
2. Сортировка коротких последовательностей с помощью вставок.
Остальное мелкие оптимизации - типа немного разных алгоритмов для граничных и внутренних подпоследовательностей.

Кроме 1-го всё можно без труда повторить на дельфе для конкретного типа.