最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java使用RedisTemplate如何根據(jù)前綴獲取key列表

    Java使用RedisTemplate如何根據(jù)前綴獲取key列表

    這篇文章主要介紹了Java使用RedisTemplate如何根據(jù)前綴獲取key列表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java對(duì)象數(shù)組定義與用法詳解

    Java對(duì)象數(shù)組定義與用法詳解

    這篇文章主要介紹了Java對(duì)象數(shù)組定義與用法,結(jié)合實(shí)例形式分析了java對(duì)象數(shù)組的概念、功能、定義與使用方法,需要的朋友可以參考下
    2019-08-08
  • Java過(guò)濾器filter_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java過(guò)濾器filter_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java過(guò)濾器filter,通過(guò)過(guò)濾器,可以對(duì)來(lái)自客戶端的請(qǐng)求進(jìn)行攔截,進(jìn)行預(yù)處理或者對(duì)最終響應(yīng)給客戶端的數(shù)據(jù)進(jìn)行處理后再輸出
    2017-07-07
  • Simple Java Mail郵件發(fā)送實(shí)現(xiàn)過(guò)程解析

    Simple Java Mail郵件發(fā)送實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Simple Java Mail郵件發(fā)送實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java AbstractMethodError原因案例詳解

    Java AbstractMethodError原因案例詳解

    這篇文章主要介紹了Java AbstractMethodError原因案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • springboot解決Class path contains multiple SLF4J bindings問(wèn)題

    springboot解決Class path contains multiple 

    這篇文章主要介紹了springboot解決Class path contains multiple SLF4J bindings問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Servlet實(shí)現(xiàn)統(tǒng)計(jì)頁(yè)面訪問(wèn)次數(shù)功能

    Servlet實(shí)現(xiàn)統(tǒng)計(jì)頁(yè)面訪問(wèn)次數(shù)功能

    這篇文章主要介紹了Servlet實(shí)現(xiàn)統(tǒng)計(jì)頁(yè)面訪問(wèn)次數(shù)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 在?Java?中將Object?轉(zhuǎn)換為?Int的四種方法

    在?Java?中將Object?轉(zhuǎn)換為?Int的四種方法

    這篇文章主要介紹了在Java中如何將?Object?轉(zhuǎn)換為Int,本文研究了在?Java中將Object轉(zhuǎn)換為int的四種不同方法,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • SpringCloud微服務(wù)剔除下線功能實(shí)現(xiàn)原理分析

    SpringCloud微服務(wù)剔除下線功能實(shí)現(xiàn)原理分析

    SpringCloud是一種微服務(wù)的框架,利用它我們可以去做分布式服務(wù)開發(fā),這篇文章主要介紹了SpringCloud微服務(wù)剔除下線功能,需要的朋友可以參考下
    2022-11-11
  • SpringBoot如何自定義線程池配置類

    SpringBoot如何自定義線程池配置類

    有時(shí)候我們?cè)陧?xiàng)目中做一些長(zhǎng)鏈路的跑批任務(wù)時(shí),基于Springboot項(xiàng)目的定時(shí)任務(wù),我們可以指定一個(gè)自定義的線程配置類進(jìn)行單獨(dú)提供給具體跑批任務(wù)使用,而不占用整個(gè)系統(tǒng)資源,這篇文章主要介紹了SpringBoot如何自定義線程池配置類,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

盐津县| 彰化县| 虹口区| 正安县| 伊春市| 沁水县| 措勤县| 应用必备| 绥化市| 斗六市| 上饶市| 皋兰县| 伊吾县| 馆陶县| 辽宁省| 牡丹江市| 曲水县| 庐江县| 武强县| 灌南县| 浦东新区| 曲松县| 彭泽县| 临桂县| 海晏县| 渑池县| 区。| 鞍山市| 右玉县| 阿拉善左旗| 博乐市| 双鸭山市| 丁青县| 于都县| 江城| 八宿县| 思茅市| 靖安县| 搜索| 黄石市| 巴中市|