Kar*_*ell 43 language-agnostic sorting algorithm time-complexity
上周我偶然发现了这篇论文,作者在第二页提到:
请注意,这会产生整数边权重的线性运行时间.
第三页上的内容相同:
这产生整数边缘权重的线性运行时间和基于比较的排序的O(m log n).
在第8页:
特别是,使用快速整数排序可能会显着加速GPA.
这是否意味着在特殊情况下存在整数值的O(n)排序算法?或者这是图论的专长?
PS:
可能参考文献[3]可能会有所帮助,因为在第一页上他们说:
[...]图表类已经实现了进一步的改进,例如整数边权重[3],[...]
但是我无法访问任何科学期刊.
pol*_*nts 63
是的,基数排序和计数排序是O(N).它们不是基于比较的排序,已被证明具有?(N log N)下限.
确切地说,基数排序是O(kN),k要排序的值中的位数在哪里.计数排序是O(N + k),k要排序的数字的范围在哪里.
特定的应用程序k足够小,基数排序和计数排序在实践中表现出线性时间性能.
计数排序:如果您的整数非常小,请访问http://en.wikipedia.org/wiki/Counting_sort。如果您有更大的数字,则进行基数排序(这基本上是计数排序的概括,或者,如果有的话,这是对更大的数字的优化):http : //en.wikipedia.org/wiki/Radix_sort
也有存储桶排序:http : //en.wikipedia.org/wiki/Bucket_sort