输入包括两行,第一行是一个正整数N(N<=1000000),表示理工大共N个美女。第二行有N个正整数分别表示N位美女的身高,每个正整数的值不会超过10^9。 (输入数据之间会用空格隔开)
#include<stdio.h>
int a[1100001];
int pp(int low,int h)
{
int key=a[low];
while(low < h)
{
while(key <= a[h] && low < h) h--;
a[low]=a[h];
while(key >= a[low] && low < h) low++;
a[h]=a[low];
}
a[low]=key;
return low;
}
void paixu(int low, int h)
{
if(low>=h)
return ;
int mid=pp(low,h);
paixu(low,mid-1);
paixu(mid+1,h);
}
int main()
{
int i;
int n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
paixu(0,n-1);
for(i=n-1; i>=0; i--)
{
printf("%d", a[i]);
if(i>0)
printf(" ");
else
printf("\n");
}
return 0;
}
每天训练发现我比别人做的好慢,但是理解的更深刻,如果一开始学一个新知识点就搜模板,那么这样的人是走不远的,毕业之后带走的只有思维,什么荣誉,奖杯都已经不重要了。

浙公网安备 33010602011771号