クイックソート
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) } } } }