资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Scala中怎么实现冒泡排序和归并排序

Scala中怎么实现冒泡排序和归并排序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联10多年企业网站制作服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站制作及推广,对成都会所设计等多个行业拥有丰富的网站营销经验的网站建设公司。

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

看完上述内容,你们掌握Scala中怎么实现冒泡排序和归并排序的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


新闻标题:Scala中怎么实现冒泡排序和归并排序
地址分享:http://cdkjz.cn/article/jioepo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220