sclaa -快速排序

简介: package algorithmobject QuickSortApp { def QuickSort(list: List[Int]): List[Int] = { list match { ...
package algorithm

object QuickSortApp {


  def QuickSort(list: List[Int]): List[Int] = {
    list match {
      case Nil => Nil
      case List() => List()
      case head :: tail =>                      // 使用head 作为算法中的基数
        val (left, right) = tail.partition(_ < head)
        QuickSort(left) ::: head :: QuickSort(right)          // 递归调用,直到完成排序
    }
  }

  def main(args: Array[String]): Unit = {


    val lists: List[Int] = List(1, 10, 8, 100, -234, 0, 100)


    for (ele <- lists) {
      print(ele + "\t")
    }
    val list2 = QuickSort(lists)
    println()
    for (ele <- list2) {
      print(ele + "\t")
    }

  }

}
相关文章
|
4月前
|
搜索推荐 C++
C++快速排序的实现
C++快速排序的实现
|
4月前
|
算法
快速排序(三)——hoare法
快速排序(三)——hoare法
55 1
|
9月前
|
C++
C++快速排序
C++快速排序
52 1
|
算法 搜索推荐 测试技术
快速排序详解
快速排序详解
61 0
|
算法 搜索推荐
快速排序到底有多快
快速排序到底有多快
74 0
重新理解快速排序
重新理解快速排序
50 0
|
机器学习/深度学习
785. 快速排序
785. 快速排序
59 0
快速排序
概念:快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
【1. 快速排序】
思路: > 1. 确定分界点:q[l] , q[(1 + r)/2] , q[r] , 随机 > 2. 调整区间的范围:使得在`分界点左侧是数都<= x`, `分界点右侧的数都>= x `(`重点处理`)
81 0
【1. 快速排序】