标签:UNC cti alert fun quicksort splice lse 排序 ++
/*
快排算法描述
1.找基准点。
2.建立两个空数组。
3.arr中大于基准点放left,则反之。
4.left,基准点,right连接起来。
*/
function quicksort(arr) { //参数类型:数组;返回值,数组。
if (arr.length <= 1) {
return arr;
}
var equally = Math.floor(arr.length / 2); //arr中间索引
var benchmark = arr.splice(equally,1); //arr中间值
var left = [];
var right = [];
for (var i = 0,len = arr.length; i < len; i++) {
if (arr[i] < benchmark) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quicksort(left).concat([benchmark],quicksort(right)); //不断递归,最后都递归为一个数,然后拼接数组,返回排完序数组。
}
alert(quicksort([21,81,12,85,31,97,18,2,87,75,3])); //output:2,3,12,18,21,31,75,81,85,87,97
标签:UNC cti alert fun quicksort splice lse 排序 ++
原文地址:https://www.cnblogs.com/Longhua-0/p/9292227.html