Məzmuna keçin
  • Kateqoriyalar
  • Ən yeni
  • Teqlər
  • Populyar
Yığmaq
Brend loqosu
Elvin HüseynovE

Elvin Hüseynov

@Elvin Hüseynov
Haqqında
Yazı
2
Mövzu
2
Paylaşımlar
0
Qruplar
0
İzləyicilər
0
İzləyir
0

Yazı

Ən yeni

  • Java-da Stack və Heap yaddaş
    Elvin HüseynovE Elvin Hüseynov

    Java proqramlarında yaddaş idarəetməsi iki əsas sahədə həyata keçirilir: Stack və Heap. Hər iki sahə yaddaşın müxtəlif məqsədlər üçün istifadəsini təmin edir və fərqli xüsusiyyətlərə malikdir.

    Stack Yaddaşı:

    • Məqsədi: Metod çağırışları, lokal dəyişənlər və metodlara aid məlumatların saxlanması üçün istifadə olunur.
    • Xüsusiyyətləri:
      • Struktur: LIFO (Last-In-First-Out) prinsipi ilə işləyir, yəni son daxil olan ilk çıxır.
      • Yaddaşın İdarə Edilməsi: Yaddaş avtomatik olaraq idarə olunur; metod tamamlandıqda, ona aid yaddaş avtomatik sərbəst buraxılır.
      • Sürət: Stack yaddaşına giriş sürətlidir və kiçik ölçülü olduğundan cache üçün uyğundur.
      • Məhdudiyyətlər: Yaddaş həcmi məhduddur və böyük məlumatların saxlanması üçün uyğun deyil. Stack yaddaşının dolması Stack Overflow xətasına səbəb ola bilər.

    Heap Yaddaşı:

    • Məqsədi: Dinamik olaraq yaradılan obyektlərin və classların saxlanması üçün istifadə olunur.
    • Xüsusiyyətləri:
      • Struktur: Təsadüfi şəkildə təşkil olunmuşdur və obyektlər yaddaşın müxtəlif yerlərində yerləşə bilər.
      • Yaddaşın İdarə Edilməsi: Yaddaşın idarə edilməsi Garbage Collector tərəfindən həyata keçirilir; istifadə olunmayan obyektlər avtomatik olaraq sərbəst buraxılır.
      • Sürət: Heap yaddaşına giriş nisbətən yavaşdır və fragmentasiya problemi yarana bilər.
      • Məhdudiyyətlər: Yaddaşın əl ilə idarə edilməsi çətindir və yaddaş sızmalarına səbəb ola bilər.

    Java-da Stack və Heap yaddaşının istifadəsinə misal:

    public class YaddasTest {
        public static void main(String[] args) {
            int a = 10; // Stack yaddaşında saxlanılır
            YaddasTest nesne = new YaddasTest(); // Heap yaddaşında saxlanılır
            nesne.metod();
        }
    
        public void metod() {
            int b = 20; // Stack yaddaşında saxlanılır
            // Əlavə əməliyyatlar
        }
    }
    

    Yuxarıdakı nümunədə:

    • int a = 10; ifadəsi ilə yaradılan a dəyişəni Stack yaddaşında saxlanılır.
    • YaddasTest nesne = new YaddasTest(); ifadəsi ilə yaradılan nesne obyekti Heap yaddaşında saxlanılır.
    • metod() daxilindəki b dəyişəni də Stack yaddaşında saxlanılır.

    Stack və Heap yaddaşının müqayisəsi:

    • Yaddaşın ölçüsü: Stack yaddaşı məhduddur və kiçik ölçülüdür, Heap yaddaşı isə daha böyükdür.
    • Yaddaşın idarə edilməsi: Stack yaddaşı avtomatik idarə olunur, Heap yaddaşı isə Garbage Collector tərəfindən idarə edilir.
    • Performans: Stack yaddaşına giriş daha sürətlidir, Heap yaddaşına giriş isə nisbətən yavaşdır.
    • Fragmentasiya: Heap yaddaşında fragmentasiya problemi yarana bilər, Stack yaddaşında isə bu problem yoxdur.

    Bu fərqlər nəzərə alınaraq, Java proqramlarında yaddaşın effektiv idarə edilməsi mümkündür.

    Java stack heap java memory

  • Selection Sort (Seçmə əməliyyatı ilə sıralama) algoritmi
    Elvin HüseynovE Elvin Hüseynov

    Selection Sort — sadə, lakin effektiv olmayan sıralama alqoritmlərindən biridir. Bu alqoritm hər dəfə ən kiçik elementi taparaq onu düzülmüş hissənin əvvəlinə yerləşdirməklə işləyir.


    Selection Sort necə işləyir?

    Selection Sort alqoritmi massivi iki hissəyə ayırır:
    ✅ Sıralanmış hissə (başlanğıcda boşdur)
    ✅ Sıralanmamış hissə (bütün elementlər buradadır)

    İşləmə prinsipi belədir:
    🔹 1. Hər dövrədə (iteration) sıralanmamış hissədə ən kiçik elementi tapırıq.
    🔹 2. Tapılan bu elementi sıralanmış hissənin əvvəlinə gətiririk.
    🔹 3. Bu proses bütün massiv tam sıralanana qədər davam edir.

    Selection Sort O(n²) zaman mürəkkəbliyinə malikdir, yəni böyük verilənlər üçün səmərəli deyil. Lakin asan başa düşülən və tətbiq edilən bir alqoritmdir.


    Selection Sort Alqoritminin Addımları

    1️⃣ Xarici dövr (for loop) ilə massivin üzərində gəzilir.
    2️⃣ İlk elementi “ən kiçik” qəbul edirik.
    3️⃣ Daxili dövrdə (for loop) qalan elementləri yoxlayırıq.
    4️⃣ Daha kiçik element tapılarsa, onu yeni “minimum” kimi qəbul edirik.
    5️⃣ Əgər yeni minimum tapılarsa, onu əvvəlki minimum ilə yer dəyişdiririk.
    6️⃣ Bu prosesi bütün massiv üçün təkrarlayırıq.


    Selection Sort alqoritminin JavaScript-də tətbiqi

    Aşağıda Selection Sort-un JavaScript kodunu görə bilərsiniz:

    const selectionSort = (arr) => {
      for (let i = 0; i < arr.length; i++) {
        let lowest = i;
    
        for (let j = i + 1; j < arr.length; j++) {
          if (arr[lowest] > arr[j]) {
            lowest = j;
          }
        }
    
        if (i !== lowest) {
          [arr[i], arr[lowest]] = [arr[lowest], arr[i]];
        }
      }
    
      return arr;
    }
    

    Necə işləyir?
    ➡ lowest dəyişəni başlanğıcda i-nin dəyərinə bərabər edilir.
    ➡ Daxili for dövrü ilə i+1-dən etibarən bütün elementlər yoxlanılır.
    ➡ Əgər daha kiçik element tapılarsa, lowest dəyişənini yeniləyirik.
    ➡ Dövr başa çatdıqdan sonra, ən kiçik element ilk elementlə yer dəyişdirilir.
    ➡ Bu proses massivin bütün elementləri üçün təkrarlanır.


    Nəticə

    ✅ Selection Sort alqoritmi asan başa düşülən və tətbiq edilən bir sıralama üsuludur.
    ❌ Böyük verilənlərdə səmərəli deyil (O(n²) zaman mürəkkəbliyi var).
    📌 Əsas üstünlüyü onun sadəliyi və az yaddaş istifadəsidir.

    Bu alqoritm kiçik massivlər üçün asan və praktik həll ola bilər, lakin böyük verilənlər üçün Merge Sort və ya Quick Sort kimi daha səmərəli alqoritmlərdən istifadə etmək tövsiyə olunur. 🚀


    İngilis dilində Jenny Selection Sortu bu videoda ən xırda məqamlarına kimi izah etməyə çalışır.

    Alqoritmlər selection sort alqoritm
  • 1 / 1
  • Daxil ol

  • Sizin hesabınız yoxdur? Qeydiyyatdan keç

  • Axtarış etmək üçün daxil olun və ya qeydiyyatdan keçin.
  • İlk yazı
    Son yazı
0
  • Kateqoriyalar
  • Ən yeni
  • Teqlər
  • Populyar