首页 > 编程语言 > 详细

快速排序

时间:2016-04-24 20:13:54      阅读:295      评论:0      收藏:0      [点我收藏+]

代码实现:

 1 function quickSort(arr) {
 2 
 3     // 这步判断很重要,因为递归,每次分治时都要判断
 4     // 并且不能将arr.length缓存成变量len,因为取pivot的时候用splice会把数组长度减1
 5     if (arr.length <= 1) return arr;
 6 
 7     var mid = Math.floor(arr.length / 2),    // 取得中间元素的索引
 8         pivot = arr.splice(mid, 1)[0],    // 以中间元素为基准元素,arr.splice()返回数组
 9         left = [],    // 用于存放比pivot小的元素
10         right = [];    // 用于存放个比pivot大的元素
11 
12     for (var i=0; i<arr.length; i++) {
13         if (arr[i] < pivot) {
14             left.push(arr[i]);
15         } else {
16             right.push(arr[i]);
17         }
18     }
19 
20     return quickSort(left).concat([pivot], quickSort(right));
21 }

 

参考:快速排序(Quicksort)的Javascript实现

 

快速排序

原文:http://www.cnblogs.com/Ruth92/p/5427944.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!