Məzmuna keçin
  • Kateqoriyalar
  • Ən yeni
  • Teqlər
  • Populyar
Yığmaq
Brend loqosu
  1. Əsas səhifə
  2. Kompüter elmi
  3. Alqoritmlər
  4. Bubble Sort (Köpük Sıralama) alqoritmi

Bubble Sort (Köpük Sıralama) alqoritmi

Planlaşdırılıb Sabitlənib Kilidlənib Köçürülüb Alqoritmlər
1 Yazı 1 Yazarlar 25 Baxış
  • Ən köhnədən yeniyə
  • Ən yenidən köhnəyə
  • Ən çox səs
Cavab ver
  • Mövzu olaraq cavablandır
🔑 Daxil ol
Bu mövzu silindi. Yalnız mövzu idarəçiliyi imtiyazlarına malik olan istifadəçilər onu görə bilər.
  • C Oflayn
    C Oflayn
    codex
    2025 M03 18 05:51 üzərində yazmışdı sonuncu dəfə tərəfindən redaktə edilib
    #1

    Bubble Sort, ən sadə sıralama alqoritmlərindən biridir. Bu metod, verilmiş siyahıda ardıcıl elementləri müqayisə edərək və lazım olduqda yerlərini dəyişərək işləyir. Bu proses, siyahı tam sıralanana qədər təkrarlanır.

    Bubble Sort Necə İşləyir?

    Bu alqoritm adını, kiçik elementlərin yuxarı qalxması və böyük elementlərin aşağı düşməsi prinsipindən alır. Sadə və başa düşülməsi asan olsa da, böyük verilənlər üçün effektiv deyil.

    📌 Mürəkkəblik: O(n²), burada n sıralanacaq elementlərin sayıdır. Bu, böyük massivlər üçün çox yavaş və əlverişsizdir.


    Bubble Sort Alqoritminin Addımları

    1. Bir funksiya yaradın və siyahını parametr kimi qəbul edin.
    2. Əsas dövrü (for loop) sondan əvvələ doğru işlədin.
    3. Daxili dövrü (for loop) əvvəldən i-1-ə qədər işlədin.
    4. Əgər arr[j] > arr[j+1]-dirsə, bu iki elementi dəyişdirin.
    5. Sıralanmış massivi qaytarın.
    6. Təkmilləşdirmə: noSwap dəyişəni əlavə edin və heç bir dəyişiklik olmazsa, dövrü erkən dayandırın.

    For Loop ilə Bubble Sort Həlli

    const bubbleSorting = (arr) => {
      let noSwaps;
      
      for (let i = arr.length; i > 0; i--) {
        noSwaps = true;
        
        for (let j = 0; j < i - 1; j++) {
          if (arr[j] > arr[j + 1]) {
            const temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
            noSwaps = false;
          }
        }
        
        if (noSwaps) break; // Dəyişiklik yoxdursa, dövrü bitiririk
      }
      
      return arr;
    };
    
    console.log(bubbleSorting([11, 2, 1234, 88, 3, 66, 876]));
    

    ✅ Üstünlüklər:

    • Kiçik verilənlər üçün işləyir.
    • Optimallaşdırma ilə erkən dayandırıla bilər (noSwaps).

    ❌ Çatışmazlıqlar:

    • Böyük massivlər üçün çox yavaşdır (O(n²)).

    Rekursiya ilə Bubble Sort Həlli

    Bu versiya təkrarlanan dövrlər (loops) əvəzinə rekursiv yanaşmadan istifadə edir.

    function bubbleSort(arr, n = arr.length) {
      // Əsas şərt: yalnız 1 və ya 0 element varsa, artıq sıralanıb
      if (n <= 1) {
        return arr;
      }
    
      // Bir dəfə Bubble Sort tətbiq edirik
      for (let i = 0; i < n - 1; i++) {
        if (arr[i] > arr[i + 1]) {
          // İki elementi dəyişdiririk
          [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
        }
      }
    
      // Rekursiv olaraq funksiyanı çağırırıq
      return bubbleSort(arr, n - 1);
    }
    
    const arr = [64, 34, 25, 12, 22, 11, 90];
    console.log(bubbleSort(arr));
    

    ✅ Üstünlüklər:

    • Loops (dövrlər) yerinə rekursiya istifadə edir.

    ❌ Çatışmazlıqlar:

    • Əlavə yaddaş tələb edə bilər (rekursiya dərinliyi çox olarsa).

    TypeScript ilə Generic Bubble Sort Həlli

    Bu versiya istənilən verilənlər tipini qəbul edə bilən (Generic) Bubble Sort metodudur.

    function bubbleSort<T>(arr: T[]): T[] {
      const n = arr.length;
    
      for (let i = 0; i < n - 1; i++) {
        for (let j = 0; j < n - i - 1; j++) {
          if (arr[j] > arr[j + 1]) {
            [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
          }
        }
      }
    
      return arr;
    }
    

    ✅ Üstünlüklər:

    • Həm rəqəmlərlə, həm də digər tipdəki verilənlərlə işləyə bilir.
    • TypeScript-in təhlükəsizliyindən istifadə edir.

    Nəticə

    Metod Mürəkkəblik Üstünlüklər Çatışmazlıqlar
    For Loop Bubble Sort O(n²) Sadə və başa düşülən Böyük verilənlər üçün səmərəsiz
    Rekursiya ilə Bubble Sort O(n²) Dövr (loop) istifadə etmir Yaddaş istifadəsi arta bilər
    TypeScript Generic Bubble Sort O(n²) Müxtəlif verilənlər ilə işləyir O(n²) olduğu üçün yenə də yavaşdır

    🚀 Alternativlər: Quick Sort və Merge Sort daha effektiv sıralama metodlarıdır.

    🔹 Bubble Sort yalnız kiçik massivlər üçün və tədris məqsədilə tövsiyə olunur!

    1 cavab Son cavab
    • C codex bu mövzunu 2025 M03 18 06:02-də sabitlədi
    Cavab ver
    • Mövzu olaraq cavablandır
    🔑 Daxil ol
    • Ən köhnədən yeniyə
    • Ən yenidən köhnəyə
    • Ən çox səs

    1/1

    2025 M03 18 05:51




    Bilik paylaşdıqca artan bir sərvətdir
    • Daxil ol

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

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