输入 n 重复 n= n/2 直到 n<= 1
我不确定这是否具有 O(n) 或 O(log n) 的时间复杂度,因为 n 在循环的每次迭代中都减半...
我知道要计算时间复杂度,您必须遍历每个操作并查看相对于输入将执行多少次,让我感到困惑的部分是,因为我们每次迭代都会更改输入的值循环,这对总时间复杂度有什么影响?
任何有关仅通过查看代码来计算算法时间复杂度的信息都将不胜感激,因为我仍然不太了解它...
输入 n 重复 n= n/2 直到 n<= 1
我不确定这是否具有 O(n) 或 O(log n) 的时间复杂度,因为 n 在循环的每次迭代中都减半...
我知道要计算时间复杂度,您必须遍历每个操作并查看相对于输入将执行多少次,让我感到困惑的部分是,因为我们每次迭代都会更改输入的值循环,这对总时间复杂度有什么影响?
任何有关仅通过查看代码来计算算法时间复杂度的信息都将不胜感激,因为我仍然不太了解它...
回答这个问题:Input n Repeat n= n/2 Until n<= 1
是 O(logn)。
为了更好地回答这个问题:这是重复的:Big O,你如何计算/近似它?