<script type="text/javascript">
/**
* “快速排序”的思想很简单,整个排序过程只需要三步:
* (1)在数据集之中,找一个基准点
* (2)建立两个数组,分别存储左边和右边的数组
* (3)利用递归进行下次比较
* @param {Object} arr
*/
function quickSort(arr){
if(arr.length<=1){
//如果数组只有一个数,就直接返回;
return arr;
}
//找到中间数的索引值,如果是浮点数,则向下取整
var num = Math.floor(arr.length/2);
//找到中间数的值
var numValue = arr.splice(num,1);
var left = [];
var right = []; for(var i=0;i<arr.length;i++){
if(arr[i]<numValue){
//基准点的左边的数传到左边数组
left.push(arr[i]);
}
else{
//基准点的右边的数传到右边数组
right.push(arr[i]);
}
}
//递归不断重复比较
return quickSort(left).concat([numValue],quickSort(right));
} alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”
</script>

  

JavsScript学习---快速排序的更多相关文章

  1. scala实战学习-快速排序

    def qSort(a:List[Int]):List[Int]={ if(a.length < 2) a else qSort(a.filter(a.head > _)) ++ a.fi ...

  2. 20172325 2018-2019-2 《Java程序设计》第五周学习总结

    20172325 2018-2019-2 <Java程序设计>第五周学习总结 教材学习内容总结 本次学习第九章内容,主要学习查找和排序. 查找 查找的定义:是一个过程,即在某个项目组中寻找 ...

  3. 2018-2019-20172329 《Java软件结构与数据结构》第五周学习总结

    2018-2019-20172329 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 <Java软件结构与数据结构>第九章-排序与查找 一.查找 1.查找概念简 ...

  4. python算法-快速排序

    快速排序: 学习快速排序,要先复习下递归: 递归的2个条件: 1. 函数自己调用自己 2.有一个退出的条件 练习:基于递归下一个函数,计算n!并且求出当n等于10的值. n!=n * n-1*…..* ...

  5. C 小问题集锦

    摘要:在学习 C 语言编程中遇到的一些容易混淆出错的问题,记录下来备忘. C语言学习 小问题集锦 作者:乌龙哈里 时间:2015-11-24 平台:Window7 64bit,C# :Visual S ...

  6. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  7. Java学习笔记——排序算法之快速排序

    会当凌绝顶,一览众山小. --望岳 如果说有哪个排序算法不能不会,那就是快速排序(Quick Sort)了 快速排序简单而高效,是最适合学习的进阶排序算法. 直接上代码: public class Q ...

  8. c#中快速排序的学习

    最近看了一句话,说的是在现实生活中,会写字的人不见得会写出好文章,学习编程语言就像是学会了写字,学会了编程语言并不一定能写出好程序. 我觉得就是很有道理,以前读书的时候,基本学完了C#中的语法知识,算 ...

  9. 算法学习之快速排序的C语言实现

    近几天在学习简单算法,今天看了一个快速排序和堆排序,堆排序还没搞懂,还是先把快速排序搞清楚吧 教程网上一艘一大堆,这里选择一个讲的比较通俗的的一个吧: http://blog.csdn.net/mor ...

随机推荐

  1. Lab 9-3

    Analyze the malware found in the file Lab09-03.exe using OllyDbg and IDA Pro. This malware loads thr ...

  2. Java实训课

  3. 'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in range(128)

    python2.7 向Excel中写入数据中含有中文就一直报错 'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in ...

  4. es6语法在ios低版本的支持性

    let.const.箭头函数在ios的某些版本不支持,会引起报错 参考:https://blog.csdn.net/cx091/article/details/79805369 https://can ...

  5. Linux中一个快速查找文件和目录的命令

    功能介绍: locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不 ...

  6. K8s+jenkins实现提升效率 —— 一些小记录

    尝试下K8s + jenkins的组合,非常方便.在这里记录一下: kubernetes版本: 1.10 + deployment.yaml apiVersion: v1 kind: Service ...

  7. hbase-0.92.1过滤器学习

    查看当前hbase中支持的过滤器 hbase(main):060:0* show_filters Documentation on filters mentioned below can be fou ...

  8. hbase-0.92.1表备份还原

    原表结构和数据 hbase(main):021:0* describe 'test' DESCRIPTION ENABLED {NAME => ', TTL = true > ', COM ...

  9. mysql <=> null 问题

    SELECT * FROM cms_user WHERE age=NULL; Empty set (0.03 sec) 查询表中记录age值为null mysql> SELECT * FROM  ...

  10. Kubernetes 实践指南之Kubernetes 的命令行工具详解

    kubectl作为客户端CLI工具,可以让用户通过命令行的方式对Kubernetes集群进行管理.本节内容将对kubectl的子命令和用法进行详细描述. 一.kubectl 用法概述 kubectl语 ...