K阶订单统计搜索

时间:2012-12-17 20:38:57

标签: c++ arrays algorithm search unordered

所以我已经实现了自己的k阶统计搜索,以找到未排序数组中的第k个最大元素。但是我刚刚意识到我使用的算法(可以在这里找到:http://pine.cs.yale.edu/pinewiki/QuickSelect)返回元素本身,但是我实际上想要返回第k个最大元素的索引。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

使用QuickSelect,返回第k个统计量的原始索引是不可行的。算法是就地的,它会扰乱数组。你必须在开始时制作原始数组的副本(或移动时跟踪元素,这也需要O(n)内存并且要复杂得多。)