2017-10-19 120 views
1

我得到整个大“O”的东西,但我有点困惑,“整个发现或计算T(n)”后继搜索的一个问题。 而不是只给我的答案,请告诉我你是怎么得到它计算T(n)?算法效率(Python)

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 
+4

1.想想最坏的情况(即需要最多操作的情况)。 2.计算处理最坏情况需要多少操作。 – NPE

+0

这可能会有所帮助:https://www.quora.com/What-does-T-n-mean-in-relation-to-O-n –

回答

0

时间复杂度的算法的运行时间是如何依赖于输入的大小/尺寸(S)最坏的情况估计。通常,在算法中寻找重复逻辑(主要是递归或循环)。然后找出重复次数依赖的输入 - 在这种情况下,它是输入'alist'的大小。尝试找到输入大小/大小与最差情况下重复操作次数之间的依赖关系。在这里,最糟糕的情况是如果'item'是'alist'中的最后一个元素,在这种情况下,while循环将运行len(alist)次。所以,时间复杂度是O(len(alist))或O(n),其中n是控制算法运行时间的输入的大小/大小。