数基转换的时间复杂度

Time complexity of number base conversion

problem 8.3-4的答案:

  1. 8.3-4 (from CLRS) Show how to sort n integers in range 0 to n^2 − 1 in O(n) time.

答案:

First take O(n) time to convert the integers into 2-digits numbers base n ....

假设我们可以在 O(n) 时间内将 0 到 n^2-1 范围内的 n 整数转换为基数 n
这怎么可能?

难道每次转换都需要 O(log(n)) 时间,因此对于 n 次转换,时间应该是 O(nlogn) 而不是 O(n) 吗?

我假设作者的意思是每个整数运算都在 O(1) 时间内完成,因此将数字转换为基数 n 基本上是最高有效位:x/n,租用有效位: x%n,在上述假设下是在常数时间内完成的。

如果没有给定的假设,每个数字需要 log(n^2)=2log(n) 位来表示,因此仅读取输入将花费 O(nlogn) 时间,因此需要此假设来满足时间要求。