随机快速排序

//srand((unsigned)time(NULL))

int randPartition(int* a,int l,int r){                                                                   //对区间进行分离。
int p=(int)(round(0.1*rand()/RAND_MAX*(r-l)+l));
swap(a[p],a[l]);
temp=a[l];
while(l<r){
while(l<r&&temp<a[r]) r--;
a[l]=a[r];
while(l<r&&temp>=a[l]) l++;
a[r]=a[l];
}
a[l]=temp;
return l;
}

void quicksort(int* a,int l,int r){                                                                 //快速排序的递归实现
        if(l<r){
                 int p=randPartition(a,l,r);
                 quicksort(a,l,p-1);
                 quicksort(a,p+1,r);
        }
}
全部评论
int Partition(int* a,int l,int r){                                                                   //对区间进行分离。 temp=a[l]; while(l<r){ while(l<r&&temp<a[r]) r--; a[l]=a[r]; while(l<r&&temp>=a[l]) l++; a[r]=a[l]; } a[l]=temp; return l; } void quicksort(int* a,int l,int r){                                                                 //快速排序的递归实现         if(l<r){                  int p=Partition(a,l,r);                  quicksort(a,l,p-1);                  quicksort(a,p+1,r);         } } 快速排序
1 回复 分享
发布于 2022-10-21 21:07 福建

相关推荐

不愿透露姓名的神秘牛友
04-14 18:14
坐标某3线小城市,周休2天半,月工资1800老板给我发信息,我不去,结果她破防了……
职场不咸鱼:这人的意思是这份工作一直1800吗[掉小珍珠了休息也太少了,一天才六十几块钱。。。
点赞 评论 收藏
分享
牛客316659795号:不是,证明hr初筛已经过了,要投给部门筛一遍
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务