クイックソート

30分プログラム、その803。
qsort.scm - みずぴー日記をまたやってみた。

使い方

scala> QSort.sort(List(1,5,4,0,3))
res2: List[Int] = List(0, 1, 3, 4, 5)

ソースコード

object QSort {
  def sort[A <% Ordered[A]](xs : List[A]) : List[A] = {
    xs match {
      case Nil =>
	Nil
      case x::xs => {
	val (ys, zs) = xs.partition(_ < x)
	sort(ys) ++ List(x) ++ sort(zs)
      }
    }
  }
}