Sobes.tech
Junior

Proqramlaşdırmada massivlər necə qurulub?

sobes.tech Süni İntellekt

AI-dan cavab

Massivlər eyni növ elementlərin sıralı kolleksiyalarıdır və ardıcıl (sıralı) yaddaş hüceyrələrində saxlanılır.

Əsas xüsusiyyətlər:

  • İndeksləmə: Elementlərə giriş 0-dan başlayan indeks vasitəsilə həyata keçirilir. İndeks massivə başlanğıcdan olan ötürməni göstərir.
  • Həcmi: Massivin həcmi (elementlərin sayı) statik tipli dillərdə yaradıldıqda sabitdir və ya dinamik tipli dillərdə (məsələn, Swift Array) dinamik şəkildə dəyişə bilər.
  • Məlumat tipi: Bütün massiv elementləri eyni məlumat tipinə malik olmalıdır.
  • Sıralıq: Elementlərin ardıcıl yaddaş hüceyrələrində saxlanması hər hansı bir elementə indeks vasitəsilə sürətli giriş təmin edir.

Əməliyyatlar:

  • İndeksə görə giriş: O(1) - sabit vaxt.
  • Əlavə etmə/çıxarma sonunda: O(1) orta hesabla dinamik massivlər üçün (Swift Array).
  • Əlavə etmə/çıxarma başlanğıcda və ya ortada: O(n) - xətti vaxt, çünki elementlərin hərəkət etdirilməsi lazım ola bilər.

Swift nümunəsi:

// Stringlər massivinin yaradılması
var names: [String] = ["Alice", "Bob", "Charlie"]

// İndeksə görə elementə giriş
let first_name = names[0] // "Alice"

// Element əlavə etmək
names.append("David") // ["Alice", "Bob", "Charlie", "David"]

// Element silmək
names.remove(at: 1) // ["Alice", "Charlie", "David"]

// Massiv üzərində dövr
for name in names {
    print(name)
}

Daxili quruluş (Swift Array tipli dinamik massivlər üçün):

Dinamik massivlər adətən statik ayrılmış yaddaş tamponu üzərində həyata keçirilir. Tamponun tutumu çatdıqda, daha böyük yeni tampon ayrılır və köhnə elementlər kopyalanır (yenidən ayırma). Bu, əlavə etmə əməliyyatı üçün amortizasiya olunmuş O(1) mürəkkəbliyi təmin edir.