码迷,mamicode.com
首页 > 编程语言 > 详细

JS排序--快速排序

时间:2019-03-19 10:18:21      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:color   script   UNC   div   通过   function   var   实现   func   

用 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排序--快速排序

标签:color   script   UNC   div   通过   function   var   实现   func   

原文地址:https://www.cnblogs.com/lipohong/p/10556777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!