Middle
Jaka jest złożoność czasowa dodawania elementu do listy Pythona na koniec, początek i środek?
sobes.tech AI
Odpowiedź od AI
W Pythonie listy są zaimplementowane jako dynamiczne tablice, więc złożoność czasowa operacji zależy od pozycji wstawienia:
- Dodanie na koniec (
list.append(element)) — amortyzowane O(1), ponieważ zazwyczaj jest miejsce, ale czasami dochodzi do ponownego przydziału pamięci. - Dodanie na początek (
list.insert(0, element)) — O(n), ponieważ wszystkie elementy są przesuwane w prawo. - Dodanie w środku (
list.insert(index, element)) — również O(n), ponieważ elementy po indeksie są przesuwane.
Dlatego do efektywnego dodawania na początku lub w środku lepiej używać innych struktur danych, takich jak collections.deque.