快速排序
2017-09-06 11:59
162 查看
一、定义
快速排序也是采用分而治之的算法,通过递归的方式将所有数据分解为包含较小元素和较大元素的不同子序列。不断重复直到所有数据都是有序。
二、基本思想
在数据集之中,选择一个元素作为”基准”(pivot)。
所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。
对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
三、图解
四、代码实现
快速排序也是采用分而治之的算法,通过递归的方式将所有数据分解为包含较小元素和较大元素的不同子序列。不断重复直到所有数据都是有序。
二、基本思想
在数据集之中,选择一个元素作为”基准”(pivot)。
所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。
对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
三、图解
四、代码实现
function quickSort(arr){ if (arr.length <= 1) { return arr; } var pivot = arr[0]; var lesser = []; var greater = []; for(var i = 1;i < arr.length ; i++){ if(arr[i] < pivot){ lesser.push(arr[i]) }else{ greater.push(arr[i]) } } return quickSort(lesser).concat([pivot], quickSort(greater)); }
相关文章推荐
- LeetCode 1 Two Sum 排序后快速求解
- 快速排序
- 白话经典算法系列之六 快速排序 快速搞定
- 【第十六周 项目1(2)—快速排序】
- 快速排序-c语言实现10.1.1
- 排序(2)二分排序、快速排序 4000 、归并排序
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本模块管理界面新增模块排序功能
- 快速排序小结
- 快速排序
- 快速排序
- 快速排序 shell实现
- 快速排序java实现
- Java快速排序
- 第十六周项目1(2)——快速排序
- 改良版随机快速排序
- 排序算法之快速排序
- java经典算法之快速排序
- 项目 1 - 验证算法之(4)快速排序
- 快速排序 quickSort
- C/C++ 数组排序(平均时间复杂度 O(nlogn))归并、快速、堆、希尔之希尔排序