Sobes.tech
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 ArrayList yoki Objective-C'dagi NSMutableArray) 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.