快速排序
<script>
function random(min,max){
return ~~(random()*(max-min)+min );
}
function randomArray(len,min,max){
var arr=[];
for(var i=0; i<len; i++){
arr[i]=random(min,max);
}
return arr;
}
/**
* 对指定的数组进行快速排序。
* @param arr
*/
funtion quickSort(arr){
if(!Array.isArray(arr))
return ;
const LEN=arr.length;
if(LEN===0)
return [];
//删除并获得中间值
var midValue=arr.splice(arr.length-1 >> 1,1);
var small=[];
var big=[];
for(var i=0, i<arr.length; i++){
if(arr[i]<midValue){
small.push(arr[i]);
}
else{
big.push(arr[i]);
}
}
//对small和big进行上述递归操作
var smallArr = quickSort ( small );
var bigArr = quickSort ( big );
//将三个连接起来
return smallArr.concat(midValue,bigArr);
}
//测试
var arr = randomArray (10,0,100);
console.log (arr);
console.log (quickSort(arr));
</script>