头脑
“疾速排序”的头脑很简单,全部排序历程只需要三步:
(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));