快速排序(Quicksort)是对冒泡排序的一种改进,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
以下是实现代码:
function quickSort(arr, low, high){
//退出递归的条件
if(low >= high){
return;
}
var i = low;
var j = high;
//设置参照数
var temp = arr[low];
//通过不断的循环,使参照数左边的数字永远比参照数小,右边永远比参照数大
while(i < j){
while(i < j && arr[j] > temp){
j--;
}
arr[i] = arr[j];
while(i < j && arr[i] <= temp){
i++;
}
arr[j] = arr[i];
}
//将参照数放在合适的位置
arr[i] = temp;
//进行递归
quickSort(arr, low, i-1);
quickSort(arr, i+1, high);
}