js实现快速排序
来源:互联网 发布:数据预处理方法 编辑:程序博客网 时间:2024/06/05 03:23
快排思想
(1)在数据集之中,选择一个元素作为"基准"(pivot)。
(2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。
var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); var pivot = arr.splice(pivotIndex, 1)[0];//设定基准的值,不能去掉[0],因为去掉就是数组了 console.log(pivot); var left = []; var right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); }; console.log(quickSort([1,24,3,4,5]));
(3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
0 0
- JS实现快速排序
- js实现快速排序
- JS实现快速排序
- JS实现快速排序
- js实现快速排序
- JS 实现快速排序
- JS实现快速排序
- JS实现快速排序
- Js实现快速排序
- js实现快速排序
- 【算法】快速排序【JS实现】
- 快速排序-JS代码实现
- JS实现快速排序(QuickSort)
- js实现冒泡排序和快速排序
- 【算法】随机化快速排序【JS实现】
- JS快速排序法原理及实现
- 快速排序的js递归实现
- 冒泡排序, 简单选择排序, 插入排序, 希尔排序, 快速排序 js 实现
- linux下命令使用集锦
- Android学习总结(3)——Handler深入详解
- 前端优化之图片预加载和延迟加载
- 第七讲项目 正差值,最大值,工资。
- 深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
- js实现快速排序
- Eclipse 引用外部library工程,运行时报NoClassDefFoundError的解决
- 关于python 的@操作符 (Decorator) 的用法
- android IPC通信中的UID和PID识别
- 欧几里得算法
- 分页处理代码
- linux下查看cpu物理个数和逻辑个数
- C++文件操作详解(ifstream、ofstream、fstream)
- BZOJ3629 [JLOI2014]聪明的燕姿