gpt4 book ai didi

java - 位移时间复杂度

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:38 24 4
gpt4 key购买 nike

我想知道右移位运算符的时间复杂度是多少 >>,最好是在 Java 中,如果可能的话,还有其他语言,如 C、Python 等。是 O(n) 还是 O(1),其中“n”是移位的位数。我不是在寻找一般性答案,因为我知道实现细节各不相同。我想知道哪些常数需要时间 O(1),哪些需要 O(n) 时间。

最佳答案

在 Java 中,原始整数类型具有固定宽度,即 64、32、16 位。比特数的移位是比特数的模。因此,出于实际目的,您可以假设位移是常数时间,即使对于 1L << 63 也是如此。你必须做 63 个单独的类次。

这同样适用于语言类型可映射到机器类型的任何语言/CPU 组合。

Java 也有 BigInteger 类型,其他语言也有任意大小的整数类型,其中数字实际上可以有任意位数。我的猜测是这种情况下的移位是 O(n),其中 n 是 BigInteger 中的位数。

关于java - 位移时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43762977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com