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

  }

}
相关文章
|
人工智能 搜索推荐 算法
Java排序算法 快速排序
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。下面让我们一起来看快速排序。 AD: 快速排序(Quicksort)是对冒泡排序的一种改进。
1438 0
快速排序(超超详细,因为自己也不是很会)
快速排序(超超详细,因为自己也不是很会)
|
移动开发 人工智能 算法
什么是快速排序(转)
什么是快速排序 快速排序简介 快速排序(英文名:Quicksort,有时候也叫做划分交换排序)是一个高效的排序算法,由Tony Hoare在1959年发明(1961年公布)。当情况良好时,它可以比主要竞争对手的归并排序和堆排序快上大约两三倍。
1241 0
|
9月前
|
搜索推荐 C++
C++快速排序的实现
C++快速排序的实现
|
人工智能 算法 搜索推荐
玩转快速排序
高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列
874 0
|
人工智能 搜索推荐
【快速排序】
【快速排序】
|
C语言
快速排序就这么简单
从前面已经讲解了冒泡排序、选择排序、插入排序了,本章主要讲解的是快速排序,希望大家看完能够理解并手写出快速排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。
147 0
快速排序就这么简单
|
C# 人工智能 搜索推荐
C#快速排序
1:需求 已知数组int[] max={72, 54, 59, 30, 31, 78, 2, 77, 82, 72};用快速排序算法按降序对其进行排列,并返回数组。 思路: 快速排序有两个方向,左边的i下标一直往右走,当a[i] a[center_index]。
938 0

热门文章

最新文章