思想
"快速排序"的思想很简单,整个排序过程只需要三步:
(1)在数据集之中,找一个基准点
(2)建立两个数组,分别存储左边和右边的数组
(3)利用递归进行下次比较
JS实现
var needSortArr = [12, 23, 45, 11, 2, 55, 12, 1];
function quickSort (arr) {
if (arr.length <= 1) {
return arr; //如果数组只有一个数,就直接返回;
}
var num = Math.floor(arr.length / 2), //找到中间数的索引值,如果是浮点数,则向下取整
numberOfCenter = arr.splice(num, 1), //找到中间数的值
left = [], right = [];
for(var i = 0; i < arr.length; i++) {
if (arr[i] < numberOfCenter) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([numberOfCenter], quickSort(right));
}
alert(quickSort(needSortArr));
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。