scala 数组 快速排序 实现





object Test {
  
   def main(args: Array[String]): Unit = {
    val array=Array(2,3,9,6,11,14,5,8,8,71,0);
    //测试排序
    val sortarr=quickSort(array,0,array.length-1);
    println("排序后:"+sortarr.toList);
  }
  
  
   /**
    * 快速排序
    */
   def quickSort(array:Array[Int],low:Int,high:Int):Array[Int]={
     var key=array(low);
     var i=low;
     var j=high;
     
     while(i        //右到左遍历
       while(i=key)j-=1;
       if(i          array(i)=array(j);
         i+=1;
       }
       
       //左到右遍历
       while(i        if(i          array(j)=array(i);
         j-=1;
       }
     }
     //每一趟结束时i==j
     array(i)=key;
     
     //每一趟结束遍历数组
     array.foreach(x=>print(x+" "));
     println();
     //递归调用完成排序
     if(low      if(j+1      
     return array;
   }
  
}  

  

-----------------------------------------------

运行结果如下:

0 2 9 6 11 14 5 8 8 71 3 
0 2 3 6 8 8 5 9 14 71 11 
0 2 3 6 8 8 5 9 14 71 11 
0 2 3 5 6 8 8 9 14 71 11 
0 2 3 5 6 8 8 9 14 71 11 
0 2 3 5 6 8 8 9 11 14 71 
排序后:List(0, 2, 3, 5, 6, 8, 8, 9, 11, 14, 71)



  

你可能感兴趣的:(scala,算法)