不了解此模幂运算算法的输入大小的时间复杂度

时间:2017-12-28 13:57:46

标签: algorithm time-complexity big-o modular modular-arithmetic

以下是伪代码:

pow2(a,b,k)
d := a, e := b, s := 1 
until e = 0
if e is odd s:=s·d modk
d:=d2 modk
e := ⌊e/2⌋ 
return s
end
  • 循环运行的时间是:log b(base 2),因为这是b = e在被舍入为0之前可以减半的次数
  • b的输入大小是log b
  • 根据以上所有信息,我对时间复杂度的计算如下: O(log(log b))(基数2) 简化后如O(2 ^ b) 我知道我不正确,因为这个算法是有效的,所以时间复杂度应该更好。
  • 此算法的实际时间复杂度为输入大小b的O(n)wrt。
  • 请解释如何根据上述所有信息确定时间复杂度O(n)。

0 个答案:

没有答案