Scala中怎么实现冒泡排序和归并排序-创新互联

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

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的西乌珠穆沁网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

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://myzitong.com/article/cshosg.html