Кто-нибудь знает как ожидаемое время работы, так и наихудшее время выполнения для разных реализаций std::nth_element
? Я использую этот алгоритм почти каждый день.
Меня особенно интересуют версии STL, поставляемые с недавними компиляторами Microsoft, но любая информация по этой теме полезна.
Обратите внимание, что это не дубликат этого вопроса. Я понимаю, какие алгоритмы существуют, но мне интересно, какие реализации используют алгоритмы.
Для фона существуют общеизвестные алгоритмы для этого. Один из них - это O (n) средний случай и O (n log n) наихудший случай, один - O (n) наихудший случай, но медленный на практике (медиана медианов). Также обратите внимание, что говорят о интересных стратегиях реализации, чтобы добиться наихудшего времени работы O (n), которые бывают быстрыми на практике. В стандарте говорится, что это должно быть хуже O (n) среднего времени.