Scala写排序可以说是简洁又明了

例如归并排序,清晰明了。

 

 

 

object MergeSort extends App {
    val oldList = List[Int](124026897544326518)
    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::list1,y::list2)=> {
           if(x>y) y::merge(list2,xs)
           else x::merge(list1,ys)
         }
      }
    }
 

快速排序

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 <))
    )
  }
}

 

posted @ 2016-06-23 09:14  @消失后  阅读(362)  评论(0编辑  收藏  举报