可以在 θ(n) 时间内使用基数排序(以及数字的计数排序)对 n 个不同的数字进行排序吗?
我会说是的。这是因为基数排序以固定次数处理数字的数字,每次都需要线性时间,导致总时间复杂度为 θ(n) 我做对了吗?如果没有那怎么办?
如果输入的domain没有约束,那么:不,时间复杂度是not θ(𝑛)。
你写:
基数排序以固定次数处理数字的数字
通过次数不固定;它是由输入决定的。您预先不知道输入中的数字可能有多少位。除非你对输入进行限制,否则一个数字可能有 100 位、1000 位……这是一个由输入本身决定的变量。
正如维基百科 - 基数排序所说:
基数排序的运行时间为 O(𝑛𝑤),其中 𝑛 是键的数量,𝑤 是键的长度。