文章目录

桶排序

由 5+1 发布

桶可以用作统计一篇文章中每个不同字符有多少个等问题,也能排序。

桶排序

给你一个数列,请你排序。

数列:

1 5 2 2 3 4 1

我们把每个数放到桶的相应下表,比如1就要放到buck[1]2就放到buck[2]。上面哪个数据桶数组如下列所示,第一行是同数组的下标,第二行是其内容。

$$\begin{matrix} bucket[]&1&2&3&4&5&6\\value&2&2&1&1&1&0 \end{matrix}$$

然后输出的时候就从下标0开始,里面是几就输出几个。

int buck[100], maxval = 0;
for (int i = 1; i <= n; i ++)
{
  int x;
  scanf ("%d", &x);//输入
  buck[x] ++;//进入桶
  maxval = max(maxval, x);//统计最大值
}

for (int i = 1; i < maxval; i ++)
{
  for (int j = 1; j <= buck[i]; j ++)//循环输出
  {
    cout << i << " ";
  }
}

暂无评论

发表评论