一个数组,比如:

[3,9,2,1,5,4]

取出某个元素(比如第一个元素3);

将除3之外的元素元素分为两组,小于(less than)等于(equal)3的为一组,[1,2],记为lt,大于(greater than)3的为一组[4,5,9] ,记为gt;

对lt 和 gt 重复上面的步骤——快速排序是一个递归过程(recursive);

将最终的结果合并。

用js来描述就是:

  // list that greater than nfunction listgt(list,n){return list.filter(function(m){return m > n;})}// eg.// 返回大于2的元素// -> [ 3, 9, 5, 4 ]// console.log(listgt([3,9,2,1,5,4],2));// list that less than or equal to nfunction listlet(list,n){return list.filter(function(m){return m <= n;})}// eg.// 返回比小于或等于2的元素// -> [ 2, 1 ]// console.log(listlet([3,9,2,1,5,4],2));function first(list){return list[0];}function rest(list){return list.slice(1);}function quicksort(list){if(list.length === 0){return [];}else{var n = first(list), lt = listlet(rest(list),n), gt = listgt(rest(list),n)// 递归 & 合并return [].concat(quicksort(lt),n,quicksort(gt))}}console.log(quicksort([3,9,2,1,5,4]));// [ 1, 2, 3, 4, 5, 9 ]

转载于:https://www.cnblogs.com/wewe/p/3163974.html

快速排序算法的简短描述相关推荐

  1. 【算法】快速排序算法的编码和优化

    参考资料 <算法(第4版)>          - - Robert Sedgewick, Kevin Wayne <啊哈! 算法>              - - 啊哈磊 ...

  2. 使用php描述快速排序算法,PHP描述冒泡排序和快速排序算法

    使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组. 写一个二维数组排序算法函数,能够具有 ...

  3. Quick Sort 快速排序算法

    Table of Contents 前言 算法步骤 选取枢纽元 分割数组 算法实现 小数组和插入排序 结语 前言 快速排序算法应该是常见的排序算法中使用的最多的一个,很多语言内置的排序算法都间接或直接 ...

  4. 【图文解释】快速排序算法

    高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6  1  2 7  9  3   ...

  5. JDK的快速排序算法实现DualPivotQuicksort

    从JDK7开始采用这种双Pivot的快速排序算法,这种算法通常会比传统单Pivot的快排算法效率更高.本文采用JDK8的源码进行分析. 具体流程如下: 1.需要排序的数组为a,判断数组的长度是否大于2 ...

  6. 交换排序-经典的快速排序算法总结

    时间复杂度,平均O(nlogn),最坏O(n): 不稳定的算法 1.算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序.它采用了一种分治的策略,通常称其为分治法(Divide ...

  7. 十二之续、快速排序算法的深入分析

    十二之续.快速排序算法的深入分析 作者:July   二零一一年二月二十七日 -------------------------- 前言 一.快速排序最初的版本 二.Hoare版本的具体分析 三.Ho ...

  8. 快速排序: 使用快速排序算法对数组进行排序

    快速排序: 使用快速排序算法对数组进行排序 题目 一个数组有 N 个元素,使用快速排序对其进行排序输出(本题还会人工阅卷,请使用快速排序算法进行排序) 输入描述: 输入为两行. 第一行一个整数n(1 ...

  9. 快速排序算法详解(原理,时间复杂度,实现代码)

    快速排序算法详解(原理.实现和时间复杂度) 快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出. 快 ...

最新文章

  1. 致力云安全服务模式 安全狗获近5000万融资
  2. OS / Linux / 系统阻塞在系统调用中时如果收到信号,系统如何处理?
  3. C++双目/单目运算符的重载
  4. 围观一下tp的游戏保护 一
  5. 显示学生各科成绩和总成绩-面试被问到
  6. 关于static方法
  7. go sublime mysql_Sublime text 3开发GO
  8. centos7下安装mysql5.6_CentOS7安装后MySQL5.6如何配置MySQL5.6呢?
  9. 上计算机课玩游戏检讨400字,上网课玩游戏检讨书
  10. 《大型网站技术架构》读书笔记[3] - 架构核心五要素
  11. mysql控制结构_Mysql 控制结构初识
  12. 关于Unity中DOTween插件的使用(专题一)
  13. dubbo如何利用spring扩展点完成初始化
  14. 苹果UDID泄露续:为什么UDID泄露会引起这么大反响?
  15. 证券交易系统 -- 为什么要低延迟?
  16. Baklib每日分享|在线产品手册的制作技巧
  17. Educational Codeforces Round 97 (Rated for Div. 2)
  18. 丧心病狂!华为折叠屏手机一秒售罄,炒到9万一部!
  19. 手机投屏到电脑的实用工具
  20. 【Android进阶】20、音频播放:SoundPool 类、单元测试:Espresso框架

热门文章

  1. JAVA Feign
  2. xcode 连接 github 进行代码版本控制
  3. Visual C++位图操作
  4. c++的构造函数初始化列表
  5. uniapp实现动态生成随机图形验证码
  6. html如何复用其它页面,编写可以复用的 HTML 模板
  7. python数据分析准备_使用Python进行数据分析I 环境准备
  8. 点击图片显示大图(有多张图片可以左右滑动)
  9. Android重点笔记,安卓listview 懒加载的实现笔记
  10. java wmi_WMI依赖服务使用WMI查询