4.1 Massivin təyin edilməsi və onun xüsusiyyətləri
Massiv — eyni tipli elementlərin nizamlı yığını olan verilənlər quruluşudur. Bu elementlər yaddaşda ardıcıl yerləşdirilir. Hər bir massiv elementi unikal indeksə malikdir və ona bu indeks vasitəsilə müraciət edilir.
Burada 4 ölçülü sadə bir massiv göstərilib, daxilindəki elementlər (1, 2, 3 və 4).
Massivin xüsusiyyətləri:
- Fiksasiya olunmuş ölçü: Massivin ölçüsü yaradılarkən təyin olunur və proqramın icrası zamanı dəyişdirilə bilməz.
- Elementlərin eynicinsliliyi: Massivin bütün elementləri eyni tipdə olmalıdır (məsələn, tam ədədlər, sətirlər).
- Yaddaşda ardıcıl yerləşmə: Massivin elementləri yaddaşda ardıcıl hüceyrələrdə saxlanılır ki, bu da indeksi üzrə sürətli çıxış təmin edir.
- İndeksi üzrə sürətli çıxış: Massivin istənilən elementinə çıxış sabit vaxt
O(1)ilə həyata keçirilir.
4.2 Massivlərin istifadəsinə nümunələr
Massivlərin istifadəsinə aid bəzi nümunələri nəzərdən keçirək, bunları artıq bilə bilərsiniz:
Fiks uzunluqlu məlumatların saxlanılması
Həftənin günləri, ilin ayları:
# Həftənin günlərinin massivinin yaradılması
days_of_week = ["Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə", "Bazar"]
print(days_of_week[2]) # Çap: Çərşənbə
Matrislər və çoxölçülü massivlər
3x3 matrisi:
# 3x3 matrisinin yaradılması
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][1]) # Çap: 5
Sıralama alqoritmlərində istifadə
Rəqəmlər massivinin sıralanması:
# Rəqəmlər massivinin sıralanması
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort() # Massivin sıralanması
print(numbers) # Çap: [1, 2, 5, 5, 6, 9]
Müvəqqəti məlumatların saxlanılması üçün bufer
Fayldan məlumatların oxunması üçün bufer:
# 1024 bayt ölçüdə buferin yaradılması
buffer = [0] * 1024
print(len(buffer)) # Çap: 1024
4.3 Massivlərlə əsas əməliyyatlar
Vacibdir! Python-da list sinfi dinamik massivdir, o, işləmə zamanı ölçüsünü dəyişə bilər. Dinamik massivlər haqqında daha ətraflı bir neçə mühazirədən sonra öyrənəcəksiniz.
Əsas əməliyyatlar: indeks üzrə giriş, əlavə etmə, silmə
İndeks üzrə giriş
Massiv elementlərinə giriş indeks vasitəsilə həyata keçirilir, hansı ki, onun yerini göstərir.
# Massiv elementlərinə indeks üzrə giriş
arr = [10, 20, 30, 40, 50]
print(arr[2]) # Nəticə: 30
print(arr[-1]) # Nəticə: 50 (sonuncu element)
Əlavə etmə
Massivə element əlavə etmək üçün yeni element üçün yer açmaq məqsədilə bütün növbəti elementləri təxirə salmaq lazım ola bilər.
Nümunə (massivin ortasına element əlavə etmək):
# Massivə element əlavə etmək
arr = [10, 20, 30, 40, 50]
arr.insert(2, 25) # 25-i 2 mövqeyinə əlavə etmək
print(arr) # Nəticə: [10, 20, 25, 30, 40, 50]
Silinmə
Massivdən element silmək üçün, boş qalmış yeri doldurmaq məqsədilə bütün növbəti elementləri təxirə salmaq lazım ola bilər.
Nümunə (elementin silinməsi):
# Massivdən elementin silinməsi
arr = [10, 20, 30, 40, 50]
arr.pop(2) # 2 mövqeyindəki elementi silmək
print(arr) # Nəticə: [10, 20, 40, 50]
4.4 Massivlərin istifadəsinin üstün və mənfi cəhətləri
Massivlərin istifadəsinin üstün və mənfi cəhətlərini nəzərdən keçirək:
Üstün cəhətlər:
- İndeksə görə sürətli giriş: Massivin istənilən elementinə giriş sabit vaxtda
O(1)həyata keçirilir, bu da massivləri məlumatların oxunması üçün çox effektiv edir. - Sadə reallaşdırma: Massivləri anlamaq və istifadə etmək asandır, onları fərqli problemlərin həlli üçün tətbiq etmək çətin deyil.
- Aşağı əlavə xərclər: Massivlər bağlı siyahılar kimi daha mürəkkəb verilənlər strukturları ilə müqayisədə daha az yaddaş tutur.
Mənfi cəhətlər:
- Sabit ölçü: Massivin ölçüsü onun yaradılması zamanı təyin olunur və dəyişdirilə bilməz. Bu o deməkdir ki, əvvəlcədən lazım olan ölçünü bilmək və ya tələbat artdıqca artırıla bilən dinamik massivlərdən istifadə etmək lazımdır.
- Əlavə və silmə xərcləri: Elementlərin əlavə edilməsi və silinməsi vaxt baxımından çox xərc tələb edə bilər, çünki elementlərin yerdəyişməsi lazım olur. Ən pis halda, massivdə ortadakı elementi əlavə etmək və ya silmək
O(n)vaxt tələb edir. - Yaddaşın qeyri-effektiv istifadəsi: Əgər massiv tam istifadə olunmursa, boş yaddaş hüceyrələri dolu qalmış olur, bu da yaddaşın qeyri-effektiv istifadəsinə səbəb ola bilər.
GO TO FULL VERSION