JS排序--快速排序

时间:2019-03-19
本文章向大家介绍JS排序--快速排序,主要包括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); // 快排