社区讨论
求助,为什么第5个点AC,前四个都是WA
P1177【模板】排序参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lo3fn2b4
- 此快照首次捕获于
- 2023/10/24 05:51 2 年前
- 此快照最后确认于
- 2023/10/24 05:51 2 年前
#define MAX 100002
void swap(int*a,int *b)
{
int t=*a;
*a=*b;
*b=t;
}
int partsort(int *a,int left,int right)
{
int key=(left+right)/2;
while(left<right)
{
while(key<right&&a[key]<=a[right])
{
right--;
}
while(left<key&&a[key]>=a[left])
{
left++;
}
if(left<right)swap(&a[left],&a[right]);
}
swap(&a[left],&a[key]);
return left;
}
void quicksort(int *a,int left,int right)
{
if(left>=right)return;
int key=partsort(a,left,right);
quicksort(a,left,key-1);
quicksort(a,key+1,right);
return ;
}
int main()
{
int n;
int a[MAX];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int left=0,right=n-1;
quicksort(a,left,right);
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...