清单中修剪操作的时间复杂度

时间:2019-05-20 21:39:40

标签: python arrays time-complexity

列表上的修剪操作时间复杂度是什么(以下示例)?

def function():
    list = [1, 2, 3, 4, 5]
    x = list[2:]

    print(x)

我猜这是线性O(n),但是不确定是否是这种情况。

1 个答案:

答案 0 :(得分:1)

切片列表的复杂度是

Slice         | l[a:b]       | O(b-a)        | l[1:5]:O(l)/l[:]:O(len(l)-0)=O(N)

具有列表操作的示例

def is_unique1 (alist : [int]) -> bool:
    for i in range(len(alist)):     #O(N) - for every index; see * below
        if alist[i] in alist[i+1:]: #O(N) - index+add+slice+in: O(1)+O(1)+O(N)+O(N) = O(N)
            return False        #O(1) - never executed in worst case; ignore
    return True             #O(1) - always executed in worst case; use

看看this可能对您有帮助