首页 > 代码库 > 关于快速排序
关于快速排序
常用
1.sort()方法:
var a = [5,29,23,37,27,44];function sortNum(a,b){ return a-b; }alert(a.sort(sortNum));
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
2.
var a = [5,29,23,37,27,44]; function quickSort(arr){ if(arr.length <=1){ return arr; } var num = Math.floor(arr.length/2); var numValue = http://www.mamicode.com/arr.splice(num,1); var left = []; var right = []; for(var i =0,len=arr.length;i<len;i++){ if(arr[i]<numValue){ left.push(arr[i]); } if(arr[i]>numValue){ right.push(arr[i]); } } return quickSort(left).concat(numValue,quickSort(right)); } alert(quickSort(a));
这种方法是选用一个中间数,每个数轮流与这个中间数进行比较,比这个中间数小那就放进数组left里面,反之则放入数组right
利用递归的方式重复进行比较,用concat将这些数组拼合起来
关于快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。