标签: c++ c computer-science asymptotic-complexity
k = n; //integer division while(k > 1) { std::cout << k; k=k/2; }
我需要找出渐近估计作为n的函数。
答案 0 :(得分:2)
复杂性是对数的。
假设K是非负的,则除以2相当于向右移一位。因此,k之前的最大迭代次数变为0是k中的位数。更具体地说,k中设置的最高有效位的位置(即1)将决定循环中执行的迭代次数。
k
1
由于循环中的操作(可能是)常数复杂,因此对数迭代次数会直接导致对数复杂度。