我正在尝试改进超过 10000 的大数的存储桶排序。我不太确定,为什么我的代码在大数上表现不佳。我的大小为 n 的数组的桶排序算法:
- 创建大小为 n 的链表数组
计算数字的范围
计算每个桶的间隔
- 计算存储桶的索引,将特定数字放在哪里(问题:我通过不断从数字中减去间隔和递增计数器来计算索引,每次我减去间隔。计数器是索引)我相信这种查找索引的特殊方法需要很长时间数字。如何改进存储桶的查找索引?
PS我听说有办法预处理数组并找到数组的最小和最大数量。然后通过从 min 中减去特定数字来计算索引。指数=数字-分钟。我不太明白计算索引的想法。问题: 1. 这是查找索引的有效方法吗?2. 当我的数组大小为 4,数字为 31、34、51、56 时,我该如何处理?31 去桶 0,34 去桶 3,51 和 56 怎么样?3. 还有其他计算指数的方法吗?