Skip to main content
QUICK REVIEW

[论文解读] Comparison of Bucket Sort and RADIX Sort

Panu Horsmalahti|arXiv (Cornell University)|Jun 15, 2012
Algorithms and Data Compression参考文献 6被引用 8
一句话总结

本论文通过最多1亿个整数的六种真实世界输入场景,对桶排序和基数排序进行了实证比较。结果表明,桶排序在所有情况下均更快,但内存消耗显著更高,尤其在整数范围较大时;而基数排序在有序和无序输入下均保持一致的性能表现,且在大多数配置下内存使用更少。

ABSTRACT

Bucket sort and RADIX sort are two well-known integer sorting algorithms. This paper measures empirically what is the time usage and memory consumption for different kinds of input sequences. The algorithms are compared both from a theoretical standpoint but also on how well they do in six different use cases using randomized sequences of numbers. The measurements provide data on how good they are in different real-life situations. It was found that bucket sort was faster than RADIX sort, but that bucket sort uses more memory in most cases. The sorting algorithms performed faster with smaller integers. The RADIX sort was not quicker with already sorted inputs, but the bucket sort was.

研究动机与目标

  • 评估桶排序与基数排序在理论时间复杂度之外的真实世界性能表现。
  • 识别在涉及多样化输入分布的实际场景中,哪种算法更具效率。
  • 测量不同整数范围和数据模式下的时间使用与内存消耗。
  • 确定在何种实际条件下,每种算法优于另一种。
  • 基于输入特征,为选择最优整数排序算法提供实证数据支持。

提出的方法

  • 使用C++实现桶排序与基数排序,基数排序采用最低位(LSD)方法,桶排序采用插入排序。
  • 生成六种不同的输入序列:均匀随机、完全有序、近乎有序(95%有序)、小范围、大范围以及高频重复值。
  • 在配备Intel i5处理器的标准笔记本电脑上,使用GNU/Linux系统,将输入规模从100万扩展至1亿个整数,测量执行时间和内存使用情况。
  • 在可视化中采用对数缩放,以比较不同输入类型下时间与内存使用量的增长速率。
  • 在相同硬件与操作系统环境下对算法进行基准测试,确保比较的公平性。
  • 收集三种输入规模(10^6、10^7、10^8)的数据,以评估可扩展性与性能趋势。

实验结果

研究问题

  • RQ1在多样化的真实世界输入分布下,桶排序与基数排序的执行时间表现如何?
  • RQ2在不同输入条件下,桶排序与基数排序之间的内存消耗权衡如何?
  • RQ3如理论预测,基数排序在有序与无序输入下是否均保持一致的性能表现?
  • RQ4整数范围大小与数据分布如何影响两种算法的性能?
  • RQ5在何种输入条件下,桶排序在实践中优于基数排序,反之亦然?

主要发现

  • 在全部六个测试用例中,桶排序均快于基数排序,当n=10^8时,执行时间范围为0.31秒至97.43秒。
  • 基数排序在有序与无序输入下表现出一致的性能,当n=10^7时,输入案例2与3的执行时间分别为1.88秒与1.86秒。
  • 在大多数情况下,桶排序的内存使用量显著高于基数排序,输入案例5的峰值内存使用量达2344MB,而基数排序仅为39MB。
  • 在小整数范围(输入案例4)下,两种算法表现良好,但基数排序更快(n=10^6时为1.05秒 vs 桶排序0.31秒),尽管桶排序在范围更小时表现有所改善。
  • 在大整数范围(输入案例5,M=10^8)下,两种算法均变慢,但基数排序受数字位数(d)增加的影响尤为显著,当n=10^8时,执行时间达到246.28秒。
  • 在高频输入案例(输入6)中,两种算法的表现与均匀分布情况相似,表明其对重复值具有鲁棒性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。