比赛 noip2016普及练习2 评测结果 AAAAAAATAA
题目名称 排序测试 最终得分 90
用户昵称 Zwoi_John Price 运行时间 9.677 s
代码语言 C 内存使用 11.73 MiB
提交时间 2016-11-07 19:36:02
显示代码纯文本
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int a[3000000];


/*void swap(int *x,int *y)
{
	int z;
	z=*x;
	*x=*y;
	*y=z;
}*/

void quick(int l,int r)
{
	int i,j,m,t;
	i=l;
	j=r;
	m=a[rand()%(r-l+1)+l];
	do
	{
		while (a[j]>m) j--; 
		while (a[i]<m) i++;
		if (i<=j) 
		{
			t=a[i];
			a[i]=a[j];
			a[j]=t;
			i++;
			j--;
		}
	}while (i<=j);
	if (l<j) quick(l,i-1);
	if (i<r) quick(j+1,r);
}

int main()
{
	int n,i;
	srand((unsigned)time(NULL));
	freopen("sorttest.in","r",stdin);
	freopen("sorttest.out","w",stdout);
	
	scanf("%d",&n);
	for (i=0;i<n;i++) scanf("%d",&a[i]);
	quick(0,n-1);
	
	//printf("%d\n",n);
	for (i=0;i<n;i++) 
	{
		printf("%d ",a[i]);
		//if ((i+1)%20==0) printf("\n");
	}
	//printf("\n");
	//printf("%ld ms\n",clock());
	return 0;
}