Вопрос

Я недавно узнал, что существует метод под названием nth_element. в STL. Чтобы процитировать описание:

Nth_Element аналогичен partial_sort, в том, что он частично заказывает диапазон элементов: он устраивает диапазон [первый, последний), такой, что элемент, указанный на ITERATOR NT, совпадает с элементом, который был бы в этом положении, если весь Диапазон [первый, последний) был отсортирован. Кроме того, ни один из элементов в диапазоне [NTH, последних) меньше, чем любой из элементов в диапазоне [First, nth).

Это утверждает, что имеет o (n) сложность в среднем. Как работает алгоритм? Я не мог найти никакого объяснения для этого.

Это было полезно?

Решение

Это называется алгоритм выбора, а Wikipedia имеет приличную страницу на нем: http://en.wikipedia.org/wiki/selection_algorithm

Также читайте о статистике заказа: http://en.wikipedia.org/wiki/order_statistic

Другие советы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top