【发布时间】:2012-07-07 21:38:25
【问题描述】:
我正在寻找一种算法来选择 A [N/4] 未排序数组 A 中的元素,其中 N 是数组 A 的元素数。我希望算法在次线性时间内进行选择。我有BST等基本结构的知识?哪一个对我来说是最好的算法,记住我希望它是最快的,并且对我来说实施起来不应该太难。这里 N 可以变化到 250000。任何帮助将不胜感激。注意数组可以有非独特的元素
【问题讨论】:
-
这不是projecteuler.net的问题吗?
-
鉴于未排序的输入,我认为你能期望的最好的就是线性复杂性。除非一个元素可以为您提供有关另一个元素的信息,否则如果您不查看所有元素,那么您未查看的元素可能就是您正在寻找的元素。对于线性时间,您正在寻找中位数算法的中位数。
-
你能帮我实现吗,因为我找不到任何好的伪代码?
-
维基百科或任何不错的算法书籍(例如:麻省理工学院)