面试手撕题实例:快速排序这样写稳过

#一人分享一道面试手撕题#
来分享一个快速排序的实操代码,数组a[],左边界l,右边界r。核心是partition函数:选a[r]当基准,用i标记小于基准的区域,遍历数组把小于基准的数交换到左边,最后把基准放到正确位置。递归处理左右子数组,几行代码就能搞定啦

int partition(int a[],int l,int r){
    int p=a[r],i=l;
    for(int j=l;j<r;j++)
        if(a[j]<p)swap(a[i++],a[j]);
    swap(a[i],a[r]);
    return i;
}
void qsort(int a[],int l,int r){
    if(l<r){
        int m=partition(a,l,r);
        qsort(a,l,m-1);
        qsort(a,m+1,r);
    }
}
全部评论

相关推荐

2025-12-11 14:24
门头沟学院 Java
牛客35720396...:不要用boss,全是骗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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