以下计划的复杂性是什么?我认为它必须是O(n),因为有一个for循环运行了n次.
它是一个反转给定整数中的位的程序.
unsigned int reverseBits(unsigned int num)
{
unsigned int NO_OF_BITS = sizeof(num) * 8;
unsigned int reverse_num = 0;
int i;
for (i = 0; i < NO_OF_BITS; i++)
{
if((num & (1 << i)))
reverse_num |= 1 << ((NO_OF_BITS - 1) - i);
}
return reverse_num;
}
Run Code Online (Sandbox Code Playgroud)
上述计划的复杂程度如何?有人说实际的复杂性是O(log n),但我看不出原因.