#每日一题# 快排
var example=[1,4,3,8,9,6,2]

function quickSort(arr){
if(arr.length<=1){
return arr;
}
var left=[],right=[],current=arr.splice(0,1);
for(let i=0;i<arr.length;i++){
if(arr[i]<current){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
return quickSort(left).concat(current,quickSort(right));
}
console.log(quickSort(example));
function quickSort(arr,l,r){
if(l < r){
var i = l, j = r, x = arr[i];
while(i<j){
while(i<j && arr[j]>x)
j--;

if(i<j)
arr[i++] = arr[j];

while(i<j && arr[i]<x)
i++;

if(i<j)
arr[j--] = arr[i];
}
arr[i] = x;

quickSort(arr, l, i-1);
quickSort(arr, i+1, r);
}
}
展开
评论