木桶法
#include <stdio.h>
int main()
{
int n = 0,tmp = 0,max = 0;
scanf("%d",&n);
int arr[1000]={0}; //最大数1000,所以准备一千个桶
for(int i = 0;i<n;++i)
{
scanf("%d ",&tmp); //将输入的数字对号入桶
arr[tmp]=tmp;
if(tmp>max) //记录出现的最大的数字,也就是桶号
max = tmp;
}
for(int i = 1;i<=max;++i) //按照桶号从小到大打印,未使用的桶是零不打印,打印到使用的最大的桶号为止
if(arr[i])
printf("%d ",arr[i]);
return 0;
}

京公网安备 11010502036488号