Sobes.tech
Junior

Dasturlashda massivlar qanday tuzilgan?

sobes.tech AI

AIdan javob

Massivlar — bu bir xil turdagi elementlarning tartiblangan to'plamlari bo'lib, ular ketma-ket (sequent) xotira hujayralarida saqlanadi.

Asosiy xususiyatlar:

  • Indeksatsiya: Elementlarga kirish 0 dan boshlanadigan indeks orqali amalga oshiriladi. Indeks massivning boshidan bo'shliqni ko'rsatadi.
  • Hajm: Massivning hajmi (elementlar soni) uning statik tiplangan tillarda yaratilganda belgilangan yoki dinamik tiplangan tillarda (masalan, Swift Array) dinamik ravishda o'zgarishi mumkin.
  • Ma'lumot turi: Barcha massiv elementlari bir xil ma'lumot turiga ega bo'lishi kerak.
  • Ketma-ketlik: Elementlarni ketma-ket xotira hujayralarida saqlash har qanday elementga indeks orqali tez kirishni ta'minlaydi.

Operatsiyalar:

  • Indeks bo'yicha kirish: O(1) — doimiy vaqt.
  • Oxiriga qo'shish/olib tashlash: O(1) o'rtacha dinamik massivlar uchun (Swift Array).
  • Boshlanish yoki o'rtaga qo'shish/olib tashlash: O(n) — chiziqli vaqt, chunki elementlarni siljitish talab qilinishi mumkin.

Swift misoli:

// Stringlar massivini yaratish
var names: [String] = ["Alice", "Bob", "Charlie"]

// Indeks bo'yicha elementga kirish
let first_name = names[0] // "Alice"

// Element qo'shish
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

// Elementni olib tashlash
names.remove(at: 1) // ["Alice", "Charlie", "David"]

// Massiv bo'yicha iteratsiya
for name in names {
    print(name)
}

Ichki tuzilma (Swift Array tipidagi dinamik massivlar uchun):

Dinamik massivlar odatda statik ajratilgan xotira buferi ustida amalga oshiriladi. Bu buferning sig'imi to'ldirilganda, yangi, kattaroq bufer ajratiladi va eski elementlar nusxalanadi (reallocation). Bu oxiriga qo'shishda amortizatsiyalangan O(1) murakkablikni ta'minlaydi.