日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Scala數(shù)組排序的快速實現(xiàn)

真的是越來越喜歡Scala了,簡潔的語法,清新的風格是我對Scala的印象,感覺使用Scala進行編程真的非常的方便,從Scala的設計思想也能得到不少的啟發(fā),就比如下面的一個對數(shù)字數(shù)組快速排序的sort(Array[Int])方法,你以前想到過通過這樣的方式實現(xiàn)嗎?

10余年的茫崖網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整茫崖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“茫崖網(wǎng)站設計”,“茫崖網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

編輯推薦:Scala編程語言專題

Scala數(shù)組排序實現(xiàn)代碼

 
 
 
  1. /**  
  2.  * 快速排序的例子2  
  3.  * @author VWPOLO  
  4.  * < p>2009-8-12< /p>  
  5.  */ 
  6. object TestQuickSort2 {  
  7.   def main(args : Array[String]) : Unit = {  
  8.     var arrays = Array(123,343,5435,23,3213);  
  9.     Console.println("排序前的結果");  
  10.     arrays.foreach((array: Int ) => println(array))  
  11.     arrays = sort(arrays);  
  12.     Console.println("排序后的結果");  
  13.     arrays.foreach((array: Int ) => println(array))  
  14.   }  
  15.     
  16.   def sort(xs: Array[Int]):Array[Int] = {  
  17.     if(xs.length < = 1)  
  18.       xs;  
  19.     else {  
  20.       val pivot = xs(xs.length /2);  
  21.       Array.concat(  
  22.           sort(xs filter (pivot >)),  
  23.                xs filter (pivot ==),  
  24.           sort(xs filter (pivot < ))  
  25.       )  
  26.     }  
  27.   }  

Scala數(shù)組排序快速實現(xiàn)代碼點評

sort(Array[Int])方法通過簡明的方式完成了傳統(tǒng)的快速排序功能:

1、判斷參數(shù)數(shù)組是否為空?如果為空說明排序完成,直接方法參數(shù)。

2、如果給定的參數(shù)數(shù)字不為空,取得數(shù)組的中間數(shù)。

3、根據(jù)中間數(shù)對參數(shù)數(shù)組進行拆分,通過調用Array的filter(p: A => Boolean)方法對數(shù)組進行分區(qū)并生成一個新的數(shù)組,"xs filter (pivot >)" 生成一個新的數(shù)組只包含小于pivot的數(shù)字,"xs filter (pivot ==)"里面的數(shù)組只包含等于pivot的數(shù)組,"xs filter (pivot < )"則包含大于pivot的數(shù)字,通過sort方法的迭代,完成了排序過程。

4、通過Array.concat方法合并多個數(shù)組,返回排序后的結果就行了。

sort方法指定了返回值但是方法塊中沒有"return" 語言,其實加不加都無所謂,Scala編譯器可以自動進行判斷。

Scala數(shù)組排序的優(yōu)點

這種方式和傳統(tǒng)的快速排序方法在時間復雜度和空間復雜度相似,但是代碼卻大大的簡化了,不信你用Java寫一個對數(shù)字數(shù)組快速的排序方法(要自己寫,使用Collections.sort(List< T>)方法可不算啊)。

Scala引起了大家的大量關注,一些人拿Scala的缺點和Java的優(yōu)點進行比較進行批評Scala,"另一些人拿Java缺點和Scala優(yōu)點進行比較來擁護Scala,然后兩隊人在論壇上打起了口水仗,Scala又不是鈔票,當然不能夠取悅所有人。

本文來自vwpolo的博客《Scala 的快速排序》一文。

【相關閱讀】

  1. Scala Actor:多線程的基礎學習
  2. Scala入門介紹:Hello World
  3. Scala初學者學習資料:main(String[])
  4. 影響Scala語言設計的因素列表
  5. 喜歡Scala編程的四個理由

網(wǎng)站標題:Scala數(shù)組排序的快速實現(xiàn)
分享URL:http://m.5511xx.com/article/dpiedhs.html