📜  算法|算法分析|问题9

📅  最后修改于: 2021-06-29 10:52:43             🧑  作者: Mango

在比赛中,观察到四个不同的功能。所有功能都使用单个for循环,并且在for循环内,将执行相同的语句集。考虑以下for循环:

A) for(i = 0; i < n; i++)
  
B) for(i = 0; i < n; i += 2)
  
C) for(i = 1; i < n; i *= 2)
  
D) for(i = n; i > -1; i /= 2)

如果n是输入(正)的大小,那么哪个函数最有效(如果要执行的任务不是问题)?
(A) A
(B) B
(C) C
(D) D答案: (C)
说明: first for循环的时间复杂度为O(n)。
第二个for循环的时间复杂度为O(n / 2),与渐近分析中的O(n)等效。
第三次for循环的时间复杂度为O(logn)。
第四个for循环不会终止。
这个问题的测验