最近在学习scala, 顺手一边学习一边写了个快排
object QuickSort {
def quicksort(list:List[Int]):List[Int]=list match{
case Nil => Nil
case x::Nil => list
case _ =>
val p=list.head
val (before, after)=list.tail.partition(_<p)
quicksort(before)++(p::quicksort(after))
}
def main(args: Array[String]): Unit = {
val num=List(1, 2, 6, 3, 8)
println(quicksort(num).mkString(","))
}
}
运行结果
MapReduce中mapper node使用了快排算法, 具体发生在map函数产生输出的时候, 会先写入环形缓冲区, 然后由线程将缓冲区中的数据进行分区, 并在分区中按key对数据进行排序.