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

Javascript利用递归实现数组的快速排序

时间:2016-06-14 11:53:23      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

// 定义快速排序方法
function quickSort(arr){
// 设置递归的终止条件 if( arr.length <= 1){ return arr; } // 获得数组arr的中间索引和中间索引对应的值 var middleNum = Math.floor(arr.length/2); var middleValue = arr.splice(middleNum, 1); // 定义数组,left用于存放小于中间值的数,right用于存放大于中间值的数 var left = []; var right = []; // 遍历arr数组,并把每一项与中间值作比较,根据条件分别存入left和right数组中 for( var i = 0; i < arr.length; i++ ){ if( arr[i] < middleValue ){ left.push( arr[i] ); } else { right.push( arr[i] ); } } // 通过递归方式分别对left和right数组进行比较,直至达到递归的终止条件,然后组合最终的left、middleNum、right并返回 return quickSort(left).concat(middleValue, quickSort(right)); } // 测试 var arr = [3,20,16,12,40,32,1,60,55,30]; console.log(quickSort(arr)); // 结果:[1, 3, 12, 16, 20, 30, 32, 40, 55, 60]

 

Javascript利用递归实现数组的快速排序

标签:

原文地址:http://www.cnblogs.com/lvmylife/p/5583408.html

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