空间复杂度O(1)的JS快排

/*优化快排*/
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)#
全部评论

相关推荐

03-04 07:14
门头沟学院 C++
后测速成辅导一两个月...:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务