Sobes.tech
Junior

Kuidas on massiivid programmeerimises üles ehitatud?

sobes.tech AI

Vastus AI-lt

Massiivid on järjestatud elementide kogum, mis asub üksteise järel mälupesades.

Peamised omadused:

  • Indeksimine: Juurdepääs elementidele toimub indeksi kaudu, mis algab nullist. Indeks näitab nihke massiivi algusest.
  • Suurus: Massiivi suurus (elementide arv) on fikseeritud selle loomise ajal statilistes keeltes või võib dünaamiliselt muutuda dünaamilistes keeltes (näiteks Swift Array).
  • Andmetüüp: Kõik massiivi elemendid peavad olema sama andmetüübiga.
  • Järjepidevus: Elementide salvestamine järjestikustes mälupesades tagab kiire juurdepääsu iga elemendi juurde selle indeksi järgi.

Tegevused:

  • Juurdepääs indeksi järgi: O(1) - konstantselt.
  • Lisamine/kustutamine lõpus: O(1) keskmiselt dünaamiliste massiivide puhul (Swift Array).
  • Lisamine/kustutamine algusest või keskelt: O(n) - lineaarne aeg, kuna võib olla vaja elemente nihutada.

Näide Swiftis:

// Massiivi loomine
var names: [String] = ["Alice", "Bob", "Charlie"]

// Elementi juurdepääs indeksi järgi
let first_name = names[0] // "Alice"

// Elementi lisamine
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

// Elementi kustutamine
names.remove(at: 1) // ["Alice", "Charlie", "David"]

// Massiivi iteratsioon
for name in names {
    print(name)
}

Siseehitus (dünaamiliste massiivide jaoks, näiteks Swift Array):

Dünaamilised massiivid tavaliselt realiseeritakse staatiliselt eraldatud mälupuhvrile. Kui puhvri maht saavutatakse, eraldatakse uus, suurem puhver ning vanad elemendid kopeeritakse (reallokatsioon). See tagab amortiseeritud O(1) lisamise lõppu.