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

  }

}
相关文章
|
人工智能 算法 搜索推荐
玩转快速排序
高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列
876 0
|
C# 人工智能 搜索推荐
C#快速排序
1:需求 已知数组int[] max={72, 54, 59, 30, 31, 78, 2, 77, 82, 72};用快速排序算法按降序对其进行排列,并返回数组。 思路: 快速排序有两个方向,左边的i下标一直往右走,当a[i] a[center_index]。
940 0
|
C++
C++快速排序
C++快速排序
71 1
|
算法 搜索推荐 测试技术
快速排序详解
快速排序详解
170 0
【1. 快速排序】
思路: > 1. 确定分界点:q[l] , q[(1 + r)/2] , q[r] , 随机 > 2. 调整区间的范围:使得在`分界点左侧是数都<= x`, `分界点右侧的数都>= x `(`重点处理`)
100 0
【1. 快速排序】
|
C++ 人工智能
快速排序_C++
using namespace std; void Qsort(int a[], int low, int high) { if(low >= high) { return; } int first = low; int last = hi.
1042 0
|
算法 搜索推荐
快速排序到底有多快
快速排序到底有多快
103 0