欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Scala實現(xiàn)冒泡排序、歸并排序和快速排序的示例代碼

 更新時間:2019年06月16日 14:08:16   作者:xiaohei.info  
這篇文章主要介紹了Scala實現(xiàn)冒泡排序、歸并排序和快速排序的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

相關文章

  • Java重寫與重載之間的區(qū)別

    Java重寫與重載之間的區(qū)別

    本文主要介紹了Java重寫與重載之間的區(qū)別。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • springboot動態(tài)調用實現(xiàn)類方式

    springboot動態(tài)調用實現(xiàn)類方式

    這篇文章主要介紹了springboot動態(tài)調用實現(xiàn)類方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解Spring Boot實戰(zhàn)之Rest接口開發(fā)及數(shù)據(jù)庫基本操作

    詳解Spring Boot實戰(zhàn)之Rest接口開發(fā)及數(shù)據(jù)庫基本操作

    本篇文章主要介紹了Spring Boot實戰(zhàn)之Rest接口開發(fā)及數(shù)據(jù)庫基本操作,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • HttpClient詳細使用示例代碼

    HttpClient詳細使用示例代碼

    這篇文章主要介紹了HttpClient詳細使用示例,包括導入依賴,使用工具類的詳細代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • spring使用ehcache實現(xiàn)頁面緩存示例

    spring使用ehcache實現(xiàn)頁面緩存示例

    這篇文章主要介紹了spring使用ehcache實現(xiàn)頁面緩存示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Hadoop Combiner使用方法詳解

    Hadoop Combiner使用方法詳解

    這篇文章主要介紹了 Hadoop Combiner使用方法詳解的相關資料,希望通過本文能幫助到大家讓大家理解掌握這部分內容,需要的朋友可以參考下
    2017-10-10
  • mybatis generator只能生成insert和selectAll的操作

    mybatis generator只能生成insert和selectAll的操作

    這篇文章主要介紹了mybatis generator只能生成insert和selectAll的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Windows部署Jar包的三種方式圖文詳解

    Windows部署Jar包的三種方式圖文詳解

    使用Java編寫了一些有用的工具,因為不方便部署到服務器上,所以需要把Java生成的jar包在本地Windows上部署,這篇文章主要給大家介紹了關于Windows部署Jar包的三種方式,需要的朋友可以參考下
    2023-07-07
  • Java運算符的常見問題與用法小結

    Java運算符的常見問題與用法小結

    這篇文章主要介紹了Java運算符,結合實例形式總結分析了Java各種常見運算符,包括算術運算符、比較運算符、邏輯運算符、位運算符等相關功能、原理與使用技巧,需要的朋友可以參考下
    2020-04-04
  • 解決BufferedReader.readLine()遇見的坑

    解決BufferedReader.readLine()遇見的坑

    這篇文章主要介紹了解決BufferedReader.readLine()遇見的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論