📜  追加时间复杂度python(1)

📅  最后修改于: 2023-12-03 15:12:21.018000             🧑  作者: Mango

追加时间复杂度

当我们需要向一个列表或者数组中追加元素时,常见的方法是使用 append() 函数。在 Python 中, append() 函数的时间复杂度为 O(1) 。也就是说,将一个元素追加到列表末尾的时间是常量级别的,与列表的长度无关。

不过有时候我们需要往列表中间插入元素,这时候使用 insert() 函数。但是 insert() 函数的时间复杂度为 O(n) ,也就是说,插入元素的时间与列表的长度成正比。因此,如果需要频繁地往列表中间插入元素,就需要考虑使用其他的数据结构。

除此之外,还有一些其他的追加元素的方法,例如使用列表的加号操作符、使用列表解析式等。它们的时间复杂度和 append() 函数的时间复杂度相同,也是 O(1) 。

a = [1, 2, 3]
a.append(4)  # O(1)
print(a)  # [1, 2, 3, 4]

a.insert(1, 5)  # O(n)
print(a)  # [1, 5, 2, 3, 4]

a = a + [6]  # O(1)
print(a)  # [1, 5, 2, 3, 4, 6]

a += [7]  # O(1)
print(a)  # [1, 5, 2, 3, 4, 6, 7]

b = [i for i in range(10)]
b.append(10)  # O(1)
print(b)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]