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:19 pm (UTC)(link)
Ну то есть короче вся проблема в трёх первых словах по линке("Все мы знаем...")

[identity profile] metaclass.livejournal.com 2009-01-06 10:47 pm (UTC)(link)
Там проблема в том, что rand выдает мало случайных чисел, поэтому после того как размер становится больше чем их количество - линейный рост прекращается.

[identity profile] familom.livejournal.com 2009-01-09 05:29 pm (UTC)(link)
Как ни странно, но в стандарте только про
Complexity: Approximately N log N (where N == last - first) comparisons on the average
написано.