object QuickSort {
def main(args: Array[String]) = {
val a = Array(5, 3, 2, 1, 20, 46, 9, 39 ,219)
sort(a).foreach(n=> (print(n), print (" ")))
}
def sort(a:Array[Int]): Array[Int] = {
if (a.length < 2) a
else {
val pivot = a(a.length/2)
sort (a filter (pivot>)) ++ (a filter (pivot ==)) ++
sort (a filter(pivot <))
}
}
}
首先,我正在做一個任務,我應該在Scala中解釋各種排序算法。我對斯卡拉來說比較新。我已經離開了另一個帖子,我回答了,它幫助了我。我的問題是與這些3行: 這些2條線路中的排序方法(I不能瞭解使用過濾器的,++和==)斯卡拉快速排序
sort (a filter (pivot>)) ++ (a filter (pivot ==)) ++
sort (a filter(pivot <))
和這條線在主方法(I無法理解的n的用戶和術語foreach)
sort(a).foreach(n=> (print(n), print (" ")))
我試着用谷歌搜索這些問題,但沒有得到任何幫助。 將不勝感激的答覆,
謝謝
請檢查[Scala標準庫API](http://www.scala-lang.org/api/current/index.html#scala.Array)中關鍵字的含義,並且[this](http: //www.scala-lang.org/node/133)來解釋匿名函數,這就是'bla = bla'的含義。 –
我會盡力謝謝你:D –
不客氣。 'pivot <'的語法對我來說是新的,但它可能也是匿名函數的風格 –