最近,我发现STL中存在一种称为nth_element的方法。引用描述:
Nth_element与partial_sort相似,因为它部分地排列了一个元素范围:它排列范围[first,last),使得迭代器第n个指向的元素与如果整个元素位于该位置的元素相同范围[第一个,最后一个)已排序。此外,范围[nth,last)中的任何元素都不小于范围[first,nth)中的任何元素。
它声称平均具有O(n)复杂度。该算法如何工作?我找不到任何解释。
它被称为选择算法,维基百科上有一个不错的页面:http : //en.wikipedia.org/wiki/Selection_algorithm
另请参阅有关订单统计信息:http : //en.wikipedia.org/wiki/Order_statistic