Sobes.tech
Middle

Python siyahısına element əlavə etmənin vaxt mürəkkəbliyi nədir, sonunda, başlanğıcda və ortasında?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da siyahılar dinamik massivlər kimi həyata keçirilir, ona görə əməliyyatların vaxt mürəkkəbliyi yerləşdirmə mövqeyindən asılıdır:

  • Sonuna əlavə etmək (list.append(element)) — amortizasiya olunmuş O(1), çünki adətən yer var, amma bəzən yaddaşın yenidən bölüşdürülməsi baş verir.
  • Başlanğıca əlavə etmək (list.insert(0, element)) — O(n), çünki bütün elementlər sağa doğru hərəkət edir.
  • Ortasına əlavə etmək (list.insert(index, element)) — həmçinin O(n), çünki indeksdən sonra olan elementlər hərəkət edir.

Bu səbəbdən, başlanğıca və ya ortaya səmərəli əlavə üçün digər məlumat strukturlarından, məsələn, collections.deque istifadə etmək daha yaxşıdır.