我得到了整个大“O”的东西,但我对整个“发现或计算T(n)”感到困惑
顺序搜索存在一个问题。 而不只是给我答案,请告诉我你是如何得到的
def sequentialSearch(alist, item):
pos = 0
found = False
while pos < len(alist) and not found:
if alist[pos] == item:
found = True
else:
pos = pos+1
return found
答案 0 :(得分:0)
时间复杂度是算法运行时间如何取决于输入的幅度/大小的最坏情况估计。通常,在算法中寻找重复逻辑(主要是递归或循环)。然后找出重复次数所依赖的输入 - 在这种情况下,它是输入'alist'的大小。尝试找出输入的大小/大小与最坏情况下的重复动作数之间的依赖关系。在这里,最糟糕的情况是如果'item'是'alist'中的最后一个元素,在这种情况下while循环将运行len(alist)次。因此,时间复杂度为O(len(alist))或O(n),其中n是控制算法运行时间的输入的幅度/大小。