91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scala實現冒泡排序、歸并排序和快速排序的示例代碼

發布時間:2020-08-27 02:48:26 來源:腳本之家 閱讀:237 作者:xiaohei.info 欄目:編程語言

1、冒泡排序

def sort(list: List[Int]): List[Int] = list match {
  case List() => List()
  case head :: tail => compute(head, sort(tail))
 }

 def compute(data: Int, dataSet: List[Int]): List[Int] = dataSet match {
  case List() => List(data)
  case head :: tail => if (data <= head) data :: dataSet else head :: compute(data, tail)
 }

def main(args: Array[String]) {
  val list = List(3, 12, 43, 23, 7, 1, 2, 0)
  println(sort(list))
 }

2、歸并排序

def mergedSort[T](less: (T, T) => Boolean)(list: List[T]): List[T] = {

  def merged(xList: List[T], yList: List[T]): List[T] = {
   (xList, yList) match {
    case (Nil, _) => yList
    case (_, Nil) => xList
    case (x :: xTail, y :: yTail) => {
     if (less(x, y)) x :: merged(xTail, yList)
     else
      y :: merged(xList, yTail)
    }
   }
  }

  val n = list.length / 2
  if (n == 0) list
  else {
   val (x, y) = list splitAt n
   merged(mergedSort(less)(x), mergedSort(less)(y))
  }
 }

def main(args: Array[String]) {
  val list = List(3, 12, 43, 23, 7, 1, 2, 0)
  println(mergedSort((x: Int, y: Int) => x < y)(list))
 }

3、快速排序

 def quickSort(list: List[Int]): List[Int] = {
  list match {
   case Nil => Nil
   case List() => List()
   case head :: tail =>
    val (left, right) = tail.partition(_ < head)
    quickSort(left) ::: head :: quickSort(right)
  }
 }

def main(args: Array[String]) {
  val list = List(3, 12, 43, 23, 7, 1, 2, 0)
  println(quickSort(list))
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

钟山县| 晋州市| 冷水江市| 公安县| 夏邑县| 太仓市| 渝中区| 资兴市| 东宁县| 平果县| 阿鲁科尔沁旗| 金平| 防城港市| 井陉县| 莒南县| 丽江市| 柳河县| 亳州市| 沭阳县| 瑞安市| 桦南县| 招远市| 赣州市| 大英县| 古丈县| 舒城县| 武安市| 梁河县| 南宁市| 乐平市| 昌江| 津市市| 法库县| 清原| 沾化县| 太和县| 叶城县| 浦城县| 汽车| 太仓市| 临湘市|