JS排序--快速排序

Posted lipohong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS排序--快速排序相关的知识,希望对你有一定的参考价值。

javascript 实现快速排序代码如下:

 1 /*
 2 * @author liphong
 3 * @data 2019/02/24
 4 */
 5 
 6 var arr = []; // 需要被排序数组
 7 
 8 /*
 9 * 分离函数:实现参考数组中左边部分比参考值小,右边部分比参考值大
10 * @param left, right {Number, Number} 数组头、尾的下标值
11 * @return left {Number} 数组参考值最后的位置下标值
12 */
13 function partition(left, right) {
14     const initValue = arr[left];
15     while (left < right) {
16         while (arr[right] >= initValue && left < right) {
17             right --;
18         }
19         arr[left] = arr[right];
20         while (arr[left] <= arr[right] && left < right) {
21             left ++;
22         }
23         arr[right] = arr[left];
24     }
25     arr[left] = initValue;
26     return left;
27 }
28 /*
29 * 函数:通过递归自身,实现从小到大排序
30 * @param left, right {Number, Number} 数组头、尾的下标值
31 */
32 function quickSort(left, right) {
33     if (left >= right) {
34         return
35     }
36     let mid = partition(left, right);
37     quickSort(left, mid - 1);
38     quickSort(mid + 1, right);
39 }
40 
41 quickSort(0, arr.length - 1); // 快排

 

以上是关于JS排序--快速排序的主要内容,如果未能解决你的问题,请参考以下文章

递归版快速排序-JS代码

结构-行为-样式-Js排序算法之 快速排序

js冒泡排序法——选择排序(other)——计数排序(桶排序)——快速排序——插入排序-更新

JavaScript算法(归并排序与快速排序)

js排序算法基础--快速排序

js 冒泡排序与快速排序