题:输入n个整数,进行去重、从小到大排序,输出。运行时间限制为1秒。
解:第一种方法:先将n个图书的ISBN号去重,再进行从小到大排序并输出,例如桶排序。
一.桶排序
思想:用数组记录出现的图书号,存在则为1,输出数组中值为1的数组下标。
实现:
#include<stdio.h>
int a[101],n; //定义全局变量,这两个变量需要在子函数中用到
void QuickSort(int low, int high)
{
int i,j,pviot;
if(low>high)
return;
pviot=a[low];i=low;j=high;
while(i!=j)
{
while(i<j&&a[j]>=pviot)j--;
a[i]=a[j];
while(i<j&&a[i]<=pviot)i++;
a[j]=a[i];
}
a[i]=pviot;
QuickSort(low,i-1);
QuickSort(j+1,high);
}
int main()
{
int n,i,pviot;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
QuickSort(1,n);
for(i=1;i<=n;i++)
{
printf("