社区讨论
前三个点玄学WA
P1177【模板】排序参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lobt22mk
- 此快照首次捕获于
- 2023/10/30 02:29 2 年前
- 此快照最后确认于
- 2023/11/04 06:57 2 年前
将mid=(l+r)>>1改为mid=a[(l+r)>>1]并修改while中的mid就AC了
mid等于数组中间那个数和等于它的编号不是一回事吗
CPP#include<iostream>
using namespace std;
int n,a[1000000];
void quick(int l,int r){
if(l>=r)return ;
int mid=((l+r)>>1),i=l,j=r;
while(i<=j){
while(a[i]<a[mid])++i;
while(a[j]>a[mid])--j;
if(i<=j){swap(a[i],a[j]);++i;--j;}
}
if(l<j)quick(l,j);
if(i<r)quick(i,r);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
quick(1,n);
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...