nyoj 255 c小加之随机数

来源:互联网 发布:很有节奏感的网络歌曲 编辑:程序博客网 时间:2024/06/03 14:40

对输入的数据进行去重和排序

#include<stdio.h>
int a[100],n;
void quick(int l,int r)
{
int i,j,temp,t;
if(l>r)
return ;
temp=a[l];
i=l;
j=r;
while(i!=j)
{
while(a[j]>=temp&&i<j)
{
j--;
}
while(a[i]<=temp&&i<j)
{
i++;
}
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[l]=a[i];
a[i]=temp;
quick(l,i-1);
quick(i+1,r);
}
int main()
{
int t,count=1;
scanf("%d",&t);
while(t--)
{
int i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
quick(0,n-1);
for(i=1;i<n;i++)
{
if(a[i]!=a[i-1])
{
count++;
}
}
printf("%d\n",count);
printf("%d ",a[0]);
for(i=1;i<n;i++)
{
if(a[i]!=a[i-1])
{
printf("%d ",a[i]);
}
}
printf("\n");
}
return 0;
}

采用快速排序

先排序 后去重

去重判断是否第一次出现 是 输出

0 0
原创粉丝点击