Scala in Depth一书中,介绍了快速排序的是Scala版本(P-11;1.3.2);具体代码如下:
def quickSort(): List[T] = list match {
case Nil => Nil
case x :: xs =>
val (before, after) = xs partition ( _ < x)
quickSort(before) ++ (x :: quickSort(after))
}
但是,此方法并不是“尾递归”,因此开销会很大。
当然,我们一般都会用Scala的Sorting.quickSort(Array)
方法来实现快排。