在 Java 中将 double 类型转换为 int 的时间复杂度

Time complexity of typecasting double to int in Java

double val = 500.00;
int val2 = (int) val;

前面例子中类型转换的时间复杂度是多少?

O(1)吗?

是的,是常数时间,O(1)。

不可能是其他任何东西,因为可能值的数量是有限的(虽然很大)。因此,即使较大的值需要更长的时间(我对此表示怀疑,并且可能取决于 CPU 和其他情况),但它可以花费的时间有一个上限。根据 big-O 的定义,这足以称其为 O(1).

John Bollinger 评论:

It seems a stretch to interpret the magnitude of the input value as the problem size, as I guess this answer does. All bits of a Java double are significant to its value, so double values representing smaller-magnitude numbers do not present smaller conversion problems.

我同意 100%。它确实表明为这个操作指定时间复杂度的想法是牵强附会的。输入的更自然的度量是其中的位数。常量 64 位。这也给出了 O(1).