第 n 个元素的算法
Posted
技术标签:
【中文标题】第 n 个元素的算法【英文标题】:algorithm for nth_element 【发布时间】:2011-01-24 10:48:01 【问题描述】:我最近发现在 STL 中有一个名为 nth_element 的方法。引用描述:
Nth_element 类似于 partial_sort,因为它部分 订购一系列元素:它 排列范围 [first, last) 这样 指向的元素 迭代器 nth 与 将在该位置的元素 如果整个范围 [first, last) 有 被排序。此外,没有一个 [nth, last) 范围内的元素是 小于中的任何元素 范围 [第一个,第 n 个)。
它声称平均具有 O(n) 复杂度。算法是如何工作的?我找不到任何解释。
【问题讨论】:
【参考方案1】:这叫做选择算法,***上有一个不错的页面:http://en.wikipedia.org/wiki/Selection_algorithm
另请阅读订单统计信息:http://en.wikipedia.org/wiki/Order_statistic
【讨论】:
【参考方案2】:很可能是中位数算法。
http://en.wikipedia.org/wiki/Selection_algorithm#Linear_general_selection_algorithm_-_.22Median_of_Medians_algorithm.22
【讨论】:
以上是关于第 n 个元素的算法的主要内容,如果未能解决你的问题,请参考以下文章
008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)