<script>
var arr = [4, 8, 9, 6, 3, 1, 2, 7, 5]
// 简单快排
// function quickSort(arr){
// if(arr == null || arr.length == 0){return []}
// // 先选一个数,比这个数小的排他左边,大的排右边
// var leader = arr[0];
// var left = [];
// var right = [];
// for(var i = 1;i < arr.length;i++){
// if(leader > arr[i]){
// left.push(arr[i])
// }else{
// right.push(arr[i])
// }
// }
// left = quickSort(left)
// right = quickSort(right)
// left.push(leader)
// console.log(right,left)
// return left.concat(right)
// }
// 标准快排
function exchange(arr, a, b) {
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp
}
function sort(arr,begin,end){
if(begin >= end - 1) return;
var leftPoint = begin;
var rightPoint = end;
do{
do{leftPoint ++; }while(leftPoint < rightPoint && arr[leftPoint] < arr[begin]);
do{rightPoint --;}while(leftPoint < rightPoint && arr[rightPoint] > arr[begin])
if(leftPoint < rightPoint){
exchange(arr,leftPoint,rightPoint)
}
}while(leftPoint < rightPoint)
var exchangePoint = leftPoint == rightPoint ? rightPoint -1 : rightPoint;
exchange(arr,begin,exchangePoint)
sort(arr,begin,exchangePoint)
sort(arr,exchangePoint + 1,end)
}
function quickSort(arr){
sort(arr,0,arr.length)
}
quickSort(arr)
console.log(arr)
</script
09-14
09-14
09-14
09-14