python算法大O性能问题

img


请问这个程序的大O性能是什么?
需要分类讨论,考虑i的正负性吗?
i为正while可以无限执行,即为无穷大
i为负只有一条负值语言,即为一
想寻求正解

从n>0的while循环来看时间复杂度应该是O(log2^n)。因为循环的次数x取决于i // 2。及n = 2^x,x = log2^n

i如果是负的,循环根本不进入,那么复杂度就是O(1)
i如果是正的,怎么会是无限大呢,i不断除以2,越来越小,总有变0的时候,循环次数不就是lb(n)吗