Scala寫排序能夠說是簡潔又明瞭

例如歸併排序,清晰明瞭。ui

 

 

 

object  MergeSort  extends  App {
     val  oldList  =  List[Int]( 12 40 26 89 75 44 32 65 18 )
     val  list  =  mergeSort(oldList)
     println(list)
     def  mergeSort(list : List[Int]) : List[Int] = {
        val  n = list.size/ 2
        if (n == 0 )list
        else {
            val  (xs,ys) = list.splitAt(n);
            merge(mergeSort(xs),mergeSort(ys))
        }
     }
     def  merge(xs : List[Int],ys : List[Int]) : List[Int] = {
        (xs,ys)  match {
          case  ( _ ,Nil)  = >xs
          case  (Nil, _ = >ys
          case  (x :: list 1 ,y :: list 2 ) = > {
            if (x>y) y :: merge(list 2 ,xs)
            else  x :: merge(list 1 ,ys)
          }
       }
     }
 

快速排序spa

def quickSort(xs: Array[Int]): Array[Int] = {
  if(xs.length <= 1) xs
  else{
    val pivot = xs(xs.length / 2)
    Array.concat(    //合併
      quickSort(xs filter (pivot >)),
      xs filter (pivot ==),
      quickSort(xs filter (pivot <))
    )
  }
}scala

相關文章
相關標籤/搜索