整数除法的渐近估计

时间:2013-05-01 16:07:56

标签: c++ c computer-science asymptotic-complexity

k = n; //integer division
while(k > 1) {
    std::cout << k; 
    k=k/2;
}

我需要找出渐近估计作为n的函数。

1 个答案:

答案 0 :(得分:2)

复杂性是对数的。

假设K是非负的,则除以2相当于向右移一位。因此,k之前的最大迭代次数变为0是k中的位数。更具体地说,k中设置的最高有效位的位置(即1)将决定循环中执行的迭代次数。

由于循环中的操作(可能是)常数复杂,因此对数迭代次数会直接导致对数复杂度。