gpt4 book ai didi

python - while 循环之间的大 O 表示法

转载 作者:行者123 更新时间:2023-12-01 04:33:03 25 4
gpt4 key购买 nike

帮助找到以下代码的大Oh符号:

i = n
while i > 0:
k = 2 + 2
i = i // 2

我认为它是n,因为n被分配然后循环。这是正确的吗?

最佳答案

思考这个问题的简单方法(可以用作通用方法)如下:

  • i 的初始值为 n
  • 一旦 i 达到 0,代码将停止循环(因此,当 i 为 1 时将执行最后一次迭代)
  • 执行任意次数的迭代(将该次数称为c)后,i 的值为

     ((n / 2) / 2) / ... )     = n / (2 ^ c) 
    ^ divide by 2 c times

因此,在循环结束时,我们需要 (n/(2 ^ c)) = 1。求解c 得到c = logn

所以大复杂度是O(logn)。 (也就是说,假设 n 是整数而不是 float )。

关于python - while 循环之间的大 O 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32107442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com