Junior — Middle
Massivdan elementni olib tashlash operatsiyasining vaqt murakkabligini qanday baholash mumkin?
sobes.tech AI
AIdan javob
Elementni o'chirish vaqt murakkabligi massiv turi va o'chirish usuliga bog'liq:
-
Standart massivda (masalan, Swift'dagi
Array) indeks bo'yicha elementni o'chirish uchun keyingi barcha elementlarni chapga siljitish kerak bo'ladi. Bu O(n) murakkablikka olib keladi, bu yerda n o'chirilgan elementdan keyingi elementlar soni. -
Agar oxirgi element o'chirilsa, operatsiya odatda O(1) da bajariladi, chunki siljitish shart emas.
-
Dinamik massivlar (masalan, Java'dagi
ArrayListyoki Objective-C'dagiNSMutableArray) holatida ham shunday — o'rtadagi elementni o'chirish uchun elementlarni siljitish talab qilinadi.
Misol:
var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // indeks 2 dagi elementni o'chiradi (raqam 3)
// O'chirishdan so'ng, 4 va 5 elementlari bir pozitsiya chapga siljiydi
Shu sababli, umuman olganda, massivdan elementni o'chirish — vaqt murakkabligi O(n) bo'lgan operatsiya.