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.