/*优化快排*/
function quickSort(arr,begin,end){
if(begin<end){
let i=begin,j=end,pivot=arr[begin];
while(i<j){
while(arr[j]>=pivot&&i<j)j--;
arr[i]=arr[j];
while(arr[i]<=pivot&&i<j)i++;
arr[j]=arr[i];
}
arr[i]=pivot;
quickSort(arr,begin,i-1);
quickSort(arr,i+1,end);
}else return;
}
- 优化版快速排序时间复杂度:最好:O(nlogn) 平均:O(nlogn) 最坏:O(n^2)
- 优化版快速排序空间复杂度:O(1)
- 不稳定
- 使用举例:quickSort([3,1,4,6,2],0,4)
/*普通快排*/
function quickSort( arr ) {
if(arr.length <= 1) return arr;
const num = arr[0];
let left = [], right = [];
for(let i = 1;i < arr.length; i++) {
if(arr[i]<=num) left.push(arr[i]);
else right.push(arr[i]);
}
return quickSort(left).concat([num],quickSort(right));
}
- 普通快速排序时间复杂度:最好:O(nlogn) 平均:O(nlogn) 最坏:O(n^2)
- 普通快速排序空间复杂度:O(nlogn)
- 不稳定
- 使用举例:quickSort([3,1,4,6,2])
#算法##前端##JavaScript##空间复杂度O(1)的JS快排(43323)#