Sorting 桶排序中的桶索引

Sorting 桶排序中的桶索引,sorting,indexing,bucket,Sorting,Indexing,Bucket,我正在尝试改进我的桶排序,使之适用于10000以上的大数。我不太清楚,为什么我的代码在大数上表现不好。 大小为n的数组的My Bucket排序算法: 创建大小为n的链表数组 计算数字的范围 计算每个铲斗的间隔 计算桶的索引,将特定数字放在何处 问题:我通过不断地从数字和递增计数器中减去间隔来计算索引,每次减去间隔。计数器就是索引 我相信这种寻找索引的特殊方法需要很长时间才能找到大量的数据。 如何改进桶的查找索引? 另外,我听说有一种方法可以对数组进行预处理,并找到数组的最小数和最大数。然后通过从

我正在尝试改进我的桶排序,使之适用于10000以上的大数。我不太清楚,为什么我的代码在大数上表现不好。 大小为n的数组的My Bucket排序算法:

创建大小为n的链表数组 计算数字的范围

计算每个铲斗的间隔

计算桶的索引,将特定数字放在何处 问题:我通过不断地从数字和递增计数器中减去间隔来计算索引,每次减去间隔。计数器就是索引 我相信这种寻找索引的特殊方法需要很长时间才能找到大量的数据。 如何改进桶的查找索引? 另外,我听说有一种方法可以对数组进行预处理,并找到数组的最小数和最大数。然后通过从最小值中减去特定的数字来计算指数。指数=number-min。我不太明白计算指数的意思。 问题: 1.这是查找索引的有效方法吗? 2.当我的数组大小为4,数字为31,34,51,56时,如何处理这些情况?31号到0号桶,34号到3号桶,51号和56号怎么样?
3.还有其他方法计算索引吗?

通过除法可以更快地找到索引。索引=值/间隔。如果第一个间隔从“min”开始,而不是从0开始,则使用值min作为分子