Sobes.tech
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.