javascript 快速排序算法
2016-02-26 15:01
441 查看
今天给大家介绍的是javascript中的快速排序算法。
快速排序:
1、通过数组长度,来找到数组中间的那个值(基准值)
2、分别拿数组中其他值和该值进行比较,如果小(大)于该基准值就直接添加到left数组中,如果大(小)于该基准值添加到right数组中,形成两个数组
3、利用递归分别对left和right进行相同的排序操作
4、最终判断arr的长度是否小于等于1,如果是:说明数组已经剩一个值了无需进行排序了,直接返回该数组
5、最终返回 left数组+基准值+right数组,就是你想要的排序结果
代码示例:
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) );
}下周一正式开始新的前端开发工作,我也会陆陆续续更新自己在工作中或者在学习中遇到的问题的解决方案以及一些新的知识。
快速排序:
1、通过数组长度,来找到数组中间的那个值(基准值)
2、分别拿数组中其他值和该值进行比较,如果小(大)于该基准值就直接添加到left数组中,如果大(小)于该基准值添加到right数组中,形成两个数组
3、利用递归分别对left和right进行相同的排序操作
4、最终判断arr的长度是否小于等于1,如果是:说明数组已经剩一个值了无需进行排序了,直接返回该数组
5、最终返回 left数组+基准值+right数组,就是你想要的排序结果
代码示例:
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) );
}下周一正式开始新的前端开发工作,我也会陆陆续续更新自己在工作中或者在学习中遇到的问题的解决方案以及一些新的知识。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- 快速排序
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式