JavaScript排序算法系列——快速排序
2018-03-11 16:10
253 查看
快速排序
思路:算法参考某个元素值,将小于它的值,放到左数组中,大于它的值的元素就放到右数组中,然后递归进行上一次左右数组的操作,返回合并的数组就是已经排好顺序的数组了实例
9, 7, 1, 4, 6, 2 [1, 2] [4] [9, 7, 6] [1] [2] [] [4] [] [6] [9, 7] [1] [2] [] [4] [] [6] [7] [9] []
function quickSort(arr){ // 设置递归的终点 if(arr.length <= 1){ return arr; } // 1. 在数组中任选一个数 var midNum = arr[Math.floor(arr.length / 2)];//向下取整 // 2. 将数组分成三组 var left = []; var middle = []; var right = []; // 3. 判断 for(var i = 0; i < arr.length; i++){ if(arr[i] < midNum){ left.push(arr[i]); } else if(arr[i] == midNum){ middle.push(arr[i]); } else if(arr[i] > midNum){ right.push(arr[i]); } } // 4. 将三个分组分别用同样的方法排序并连接在一起 return quickSort(left).concat(middle, quickSort(right)); } var arr = [1,5,7,3,12]; console.log(quickSort(arr));
相关文章推荐
- 排序算法系列——快速排序
- 算法系列(四)排序算法中篇--归并排序和快速排序
- 用JavaScript实现十大经典排序算法--快速排序
- JavaScript 排序算法——快速排序
- 排序算法系列八(快速排序)
- 算法系列(四)排序算法中篇--归并排序和快速排序
- 排序算法系列二之快速排序
- 排序算法系列——快速排序
- 排序算法系列之快速排序 (5)
- 排序算法小结(冒泡排序、简单选择排序、快速排序)
- [经典推荐]事半功倍系列之javascript
- 深入理解javascript选择器API系列第三篇——HTML5新增的3种selector方法
- 从零开始学_JavaScript_系列(三)——CSS相关(基础、选择器、position、div)
- 排序算法-快速排序
- 深入理解javascript作用域系列第四篇——块作用域
- 排序算法系列一(冒泡排序)
- 算法学习系列-快速排序
- 排序算法 - 快速排序(递归实现)
- javascript高级排序算法-希尔排序、归并排序、快速排序
- 白话经典算法系列之六 快速排序(Quick sort)