Java实现quickselect-median

时间:2014-05-16 13:06:05

标签: java algorithm median

有实施

http://www.java-tips.org/java-se-tips/java.lang/quickselect-implementation-with-median-of-three-partitioning-and-cutoff.html

使用Scala语法

val arr = Array[Comparable[_]](1, 7, 10, 11, 3, 6, 0, 2, 9, 4, 8, 5)
quickSelect(arr, 6)
println(s"${arr.mkString(" ")} | ${arr(6)}")

输出:1 4 2 0 3 5 11 10 9 7 8 6 | 11。所以,中位数是11而不是6.有人知道实施中的错误是什么吗?

1 个答案:

答案 0 :(得分:2)

你提供的链接说

* Quick selection algorithm.
* Places the kth smallest item in a[k-1].

从零开始的数组中的第6个元素是[5]