原理: 从数组中取出一个值(通常取中间的那个),小于该基准值的放在左侧,大于该基准值放右侧,循环往复。
var quickSort = function(arr) {
if(arr.length <= 1) return arr;
var middleIndex = Math.floor(arr.length /2);
var middleValue = arr.splice(middleIndex,1);
var right = [];
var left = [];
for(var i = 0;i<arr.length;i++){
arr[i] < middleValue ? left.push(arr[i]) : right.push(arr[i]);
}
return quickSort(left).concat(middleValue,quickSort(right))
}
function insertSort(arr) {
var len = arr.length;
for (var i = 1; i < len; i++) {
var currentVal = arr[i];
var pre = i - 1;
while (pre >= 0 && arr[pre] > currentVal) {
arr[pre + 1] = arr[pre];
pre--;
}
arr[pre + 1] = currentVal;
}
return arr;
}
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。