快速排序之后從前向后數(shù)一遍。
我的代碼如下:
#include<stdio.h>
#define MAXN 200088
void qsort(long a[],long begin,long end)


{
long i=begin,j=end,mid=a[(begin+end)/2],t;

do
{
while(a[i]<mid) i++;
while(a[j]>mid) j--;
if(i<=j)

{
t=a[i];a[i]=a[j];a[j]=t;
i++;j--;
}
}while(i<=j);
if(i<end) qsort(a,i,end);
if(j>begin) qsort(a,begin,j);
}
int main()


{
long n,i,a[MAXN],tmp,count;
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
qsort(a,1,n);
for(i=1;i<=n;i++)


{
tmp=a[i];
count=1;
while(a[i+1]==tmp)

{
i++;
count++;
}
printf("%ld %ld\n",tmp,count);
}
return 0;
}

posted on 2010-01-06 20:13
lee1r 閱讀(154)
評論(0) 編輯 收藏 引用 所屬分類:
題目分類:基礎(chǔ)/模擬