在 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).
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).