我试图理解非基于比较的排序算法对基于比较的排序算法的主要缺点。
主要是因为非基于比较的排序算法对非固定长度输入的效果不佳吗?
e.g。假设我有4个元素[1,100000000000000000024,3,5]
基于比较的排序算法可以在4 * log(4)中解决它。
虽然我们使用0到9的密钥并使用LSD或MSD等算法,但基于非比较的排序算法会在4 * length_of(“100000000000000000024”)中解决它。
或者假设我们知道数字介于0和100000000000000000024之间,我们可以使用0到100000000000000000024的密钥,但由于基于比较的排序算法可以就地完成,因此效率极低。
谢谢, 韦利
答案 0 :(得分:3)
非比较排序算法通常需要对输入数据进行多次假设(计数排序的小范围整数,桶排序均匀分布等)。
时间复杂度通常也仅取决于输入大小。例如,count排序取决于范围以及基数排序。