快速排序
window.onload = function()
{
function sort(arr)
{
//如果数组长度小于等于1则无需判断直接返回
if(arr.length<=1)
{
return arr;
}
//获取基准点
var midNum = Math.floor(arr.length/2);
//获取基准点的值,splice(index,1)该函数可以返回数组中被删除的那个数arr[index+1]
var midIndexVal = arr.splice(midNum,1);
//遍历数组
for(var i = 0;i<arr.length;i++)
{
//判断该值是否大于基准值,如果大于则放在right中,如果小于则放入left中
var left = [];
var right = [];
if(arr[i]<midIndexVal)
{
left.push(arr[i]);
}
else
{
right.push(arr[i]);
}
}
return sort(left).concat(midIndexVal,sort(right));
}
var arr=[3,6,2,9,4,1,7];
console.log(sort(arr));
}

浙公网安备 33010602011771号