Sobes.tech
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) татаалдыгын камсыздайт.