Junior
როგორ არის მოწყობილი მასივები პროგრამირებაში?
sobes.tech AI
პასუხი AI-სგან
Массивдер — бул бир эле түрдөгү элементтердин реттелген топтому, алар көршілөш (үзгүлтүксүз) эс тутум клеткаларында сакталат.
негизги өзгөчөлүктөр:
- Индекстеүү: Элементтерге кирүү 0-дөн башталуучу индекс аркылуу жүргүзүлөт. Индекс массивдин башынан алыстыгын көрсөтөт.
- Өлчөм: Массивдин өлчөмү (элементтер саны) статикалык типтелген тилдерде түзүлгөндө бекитилген же динамик тилдерде (мисалы, Swift
Array) динамик түрдө өзгөрүшү мүмкүн. - Маалымат түрү: Бардык массив элементтери бирдей маалымат түрүнө ээ болушу керек.
- Тизмектүү жайгашуу: Элементтердин көршілөш эс тутум клеткаларында сакталуусу ар бир элементке анын индекси аркылуу тез жетүүгө мүмкүндүк берет.
операциялар:
- Индекси аркылуу жетүү: O(1) — туруктуу убакыт:
- Жыйынтыктоо/алып салуу акырында: O(1) орточо динамик массивдер үчүн (Swift
Array). - Жыйынтыктоо/алып салуу башында же ортосунда: O(n) — сызыктуу убакыт, анткени элементтерди жылдыруу керек болушу мүмкүн.
мисал Swift:
// Стрингдер массивин түзүү
var names: [String] = ["Alice", "Bob", "Charlie"]
// Индекс аркылуу элементке жетүү
let first_name = names[0] // "Alice"
// Элемент кошуу
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
// Элементти алып салуу
names.remove(at: 1) // ["Alice", "Charlie", "David"]
// Массив боюнча өтүү
for name in names {
print(name)
}
ички түзүлүш (Swift Array түрүндөгү динамикалык массивдер үчүн):
Динамикалык массивдер көбүнчө статикалык бөлүнгөн эс тутум буферинин үстүндө ишке ашырылат. Блоктун сыйымдылыгы жеткенде, жаңы, чоңураак буфер бөлүнүп, эски элементтер көчүрүлөт (reallocation). Бул акыркыга кошуу үчүн амортизделген O(1) татаалдыгын камсыздайт.