前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >QuickSort

QuickSort

作者头像
酒楼
发布2023-12-16 10:02:37
790
发布2023-12-16 10:02:37
举报
文章被收录于专栏:酒楼酒楼

QuickSort(快排)

1.代码

代码语言:javascript
复制
public static void quickSort(int[] a,int left,int right){
	int l = left;
    int r = right;
    while(l<r){
        int tar = a[l]; //选一个基准
        while(l<r && a[r]> tar){//从右边开始,找一个小于tar的
            r --;
        }
        if(l<r){//找到了,放到当前
            a[l++] = a[r];
        }
        while(l<r && a[l] < tar){//从左边开始,找一个大于tar的
            l ++;
        }
        if(l< r){//找到了,放到右面
            a[r--] = a[l];
        }
    }
    a[r] = tar;
    quickSort(a,left,l-1);//递归左边
    quickSort(a,l+1,right);//递归右边
}

2.时间复杂度nlogn

这是一个递归问题,O(n) = n +2O(n/2) 递归问题的时间复杂度计算有个公式

代码语言:javascript
复制
对于T(n) = aT(n/b) + f(n):
f(n) < n^(logba) ,则 T(n) = O(n^(logba))
f(n) = n^(logba) ,则 T(n) = O(n^(logba) * logn)
f(n) > n^(logba) ,则 T(n) = O(f(n))

故快排的时间复杂度为nlogn

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • QuickSort(快排)
    • 1.代码
      • 2.时间复杂度nlogn
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com