0
点赞
收藏
分享

微信扫一扫

洛谷 P1177 【模板】快速排序

尤克乔乔 2022-01-20 阅读 46

 

 

 第一遍时间超限

#include<stdio.h>
int a[100010];

void Quick_Sort(int left,int right)
{
if(left>=right)
{
return;
}
int f=a[left];
int l=left,r=right;

while(l!=r)
{
while(a[r]>=f
while(a[l]<=f&&l<r) l++;
int t=a[l];
a[l]=a[r];
a[r]=t;
}
a[left]=a[l];
a[l]=f;
Quick_Sort(left,l-1);
Quick_Sort(l+1,right);
}

int main()
{
int N;
scanf("%d",

for(int i=1;i<=N;i++)
{
scanf("%d",
}

Quick_Sort(1,N);

for(int i=1;i<=N-1;i++)
{
printf("%d ",a[i]);
}
printf("%d\n",a[N]);

return 0;
}

第二遍过了

#include<stdio.h>
int a[100010];

void Quick_Sort(int left,int right)
{
if(left>=right)
{
return;
}
int num=a[(left+right)/2];
int l=left,r=right;

do
{
while(a[r]>num) r--;
while(a[l]<num) l++;
if(r>=l)
{
int t=a[r];
a[r]=a[l];
a[l]=t;
r--,l++;
}
}while(l<=r);
if(left<r) Quick_Sort(left,r);
if(l<right) Quick_Sort(l,right);
}

int main()
{
int N;
scanf("%d",

for(int i=1;i<=N;i++)
{
scanf("%d",
}

Quick_Sort(1,N);

for(int i=1;i<=N-1;i++)
{
printf("%d ",a[i]);
}
printf("%d\n",a[N]);

return 0;
}

 

举报

相关推荐

0 条评论