基准数如果取`a[l]`会被卡,取中间
by cj180202 @ 2024-03-01 20:41:51
@[Z1660402068](/user/1132451) 用首元素当哨兵数会被卡,要用中间的元素
```cpp
void quick_sort(int a[],int st,int ed){
int pivot=a[(st+ed)/2],t=0;
int i=st,j=ed;
do{
while(a[i]<pivot){
i++;
}
while(a[j]>pivot){
j--;
}
if(i<=j){
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
}
}while(i<=j);
if(st<j){
quick_sort(a,st,j);
}
if(i<ed){
quick_sort(a,i,ed);
}
return;
}
```
by PengDave @ 2024-03-01 20:41:56
@[Z1660402068](/user/1132451)
by cj180202 @ 2024-03-01 20:42:08
虽然但是, 为什么不直接用 `sort` 函数呢()
by Dawn_chen @ 2024-03-01 20:42:18
@[Dawn_chen](/user/694172) 他那是 C 语言
by PengDave @ 2024-03-01 20:43:35
@[Dawn_chen](/user/694172) 这道题本身就是练快速排序的,用个`sort`怎么好意思的
by cj180202 @ 2024-03-01 20:43:49
@[cj180202](/user/709361) 这也是()
by Dawn_chen @ 2024-03-01 20:44:44
@[cj180202](/user/709361) @[Dawn_chen](/user/694172) 感谢感谢
by Z1660402068 @ 2024-03-01 21:01:05
@[PengDave](/user/1048193) 大佬,为什莫我的哨兵取中间数会让我全wa(只修改哨兵)
by Z1660402068 @ 2024-03-01 21:11:20
@[Z1660402068](/user/1132451) 修改哨兵数后还有别的细节要注意,可以看一下我发的代码
by PengDave @ 2024-03-01 21:16:53