题解 | #牛牛的排序#

牛牛的排序

https://www.nowcoder.com/practice/26a0c92e9266443887a3bf81aff8e188

//快排实现
#include <stdio.h>
#include <stdlib.h>
void sort(int *p,int left,int right){
    if(left>=right){
        return;
    }
    int i=left,j=right;
    int temp=p[left];
    while (i!=j) {
        while (i<j&&p[j]>=temp) {
            j--;
        }
        while (i<j&&p[i]<=temp) {
            i++;
        }
        if(i<j){
            int t = p[i];
            p[i]=p[j];
            p[j]=t;
        }
    }
    p[left]=p[i];
    p[i]=temp;
    sort(p, left, i-1);
    sort(p, i+1, right);
}
int main() {
    int n;
    scanf("%d",&n);
    int *arr = (int*)malloc(n*sizeof(int));
    for(int i=0;i<n;i++){
        scanf("%d ",arr+i);
    }
    sort(arr,0,n-1);
    for(int i=0;i<n;i++){
        printf("%d ",*(arr+i));
    }
    if(arr!=NULL){
        free(arr);
        arr=NULL;
    }
    return 0;
}

全部评论

相关推荐

努力的小明a:项目看着很眼熟,施磊老师吧,我也学的这个😋我当时是把rpc框架做成了一个分布式网盘,这是一个项目,然后muduo库做成集群即时通讯,又用QT做了个交互的客户端,这样又一个项目,然后一个轻量redis,一个CAD,总共四个项目,投了三个月就今天2月份一个小厂Qt offer,然后后面想开了,Qt啥的都能干,这个月get了个北京大厂的offer,做java后端,人生就是这么魔幻,现在就在去北京入职的路上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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