C, Java ve Python'da Bubble Sort Algoritması

Son Güncelleme: 30 Kasım 2025
  • Temel bilgileri öğrenmek için ideal, bitişik elemanları karşılaştırarak ve değiştirerek sıralayan basit ve kararlı bir algoritma.
  • Karmaşıklığı O(n^2) olduğundan büyük kümelerde verimsizdir ve gereksiz birçok karşılaştırma yapar.
  • C, Java ve Python'daki uygulamaları gösterildi; daha büyük veri kümeleri için hızlı sıralama ve birleştirme sıralaması gibi daha verimli alternatifler mevcuttur.
Kabarcık Sıralama Algoritması

Kabarcık sıralama algoritması, bir listedeki elemanları sıralamak için kullanılan en basit ve en temel algoritmalardan biridir. Basitliği, sıralama algoritmalarının temel kavramlarını anlamak için mükemmel bir seçim olmasını sağlar. Bu algoritma, sıralanacak eleman sayısının az olduğu uygulama ve programlarda yaygın olarak kullanılır.

Bu makalede, kabarcık sıralama algoritmasının iki popüler programlama dili olan C ve Java'da uygulanmasına odaklanacağız . Bu algoritmanın her iki dilde de uygulanması için gerekli adımları inceleyecek, kaynak kodunu analiz edecek ve ayrıntılı açıklamalar sunacağız.

C ve Java'da Bubble Sort Algoritması

Adından da anlaşılacağı gibi, kabarcık sıralama algoritması, bir listedeki bitişik eleman çiftlerini karşılaştırarak ve yanlış sıradaysa yer değiştirerek çalışır. Liste tamamen sıralanana kadar bu işlem tekrarlanır.

C ve Java'da kabarcık sıralama algoritması nasıl çalışır?

Kabarcık sıralama algoritması, öğeleri sıralamak için basit ama etkili bir yaklaşım izler. Algoritmanın genel işleyişi aşağıda gösterilmektedir:

  1. Sıralanmamış bir öğe listesiyle başlıyoruz.
  2. Listede, bitişik öğelerin her çiftini karşılaştırarak yineleme yaparız.
  3. Eğer öğeler yanlış sıradaysa, onları değiştiririz.
  4. Liste tamamen sıralanana kadar üzerinde yineleme yapmaya devam ediyoruz.
  5. Tekrarlama süreci, tam bir geçişte daha fazla takas yapılmayana kadar gerektiği kadar tekrarlanır.

C'de kabarcık sıralama algoritmasının uygulanması

Aşağıda, kabarcık sıralama algoritmasının C dilindeki uygulamasını sunuyoruz :

#include <stdio.h>

void bubbleSort(int array[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}

int main() {
    int array[] = {64, 34, 25, 12, 22, 11, 90};
    int size = sizeof(array) / sizeof(array[0]);
    bubbleSort(array, size);
    printf("Array ordenado: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    return 0;
}

Bu balon algoritması kodunda, adında bir fonksiyon tanımladık. bubbleSort parametre olarak bir dizi ve onun boyutunu alır. Fonksiyon, iki döngü kullanarak kabarcık sıralama algoritmasını gerçekleştirir for. İlk döngü for dizinin elemanları üzerinde yineleme yapar ve ikinci döngü for Gerekli karşılaştırmaları ve fikir alışverişlerini yapın.

  C ve Java'da MergeSort Algoritması

Son olarak, fonksiyonda main, bir örnek dizi oluşturduk ve boyutunu hesapladık. Daha sonra fonksiyonu çağırıyoruz bubbleSort Diziyi ve boyutunu argüman olarak geçirmek. Son olarak sıralanmış diziyi ekrana yazdırıyoruz.

Java'da kabarcık sıralama algoritmasının uygulanması

Aşağıda, kabarcık sıralama algoritmasının Java dilindeki uygulamasını sunuyoruz:

import java.util.Arrays;

public class BubbleSort {
    public static void bubbleSort(int[] array) {
        int size = array.length;
        for (int i = 0; i < size - 1; i++) {
            for (int j = 0; j < size - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {64, 34, 25, 12, 22, 11, 90};
        bubbleSort(array);
        System.out.println("Array ordenado: " + Arrays.toString(array));
    }
}

Bu kodda, adında bir sınıf tanımladık BubbleSort. Bu sınıfın içinde, statik bir yöntem tanımladık. bubbleSort parametre olarak bir dizi alır. Yöntem bubbleSort iki döngü kullanarak kabarcık sıralama algoritmasını gerçekleştirir forTıpkı C uygulamasında olduğu gibi.

yöntemde main, bir örnek dizi oluşturduk ve metodu çağırdık bubbleSort diziyi argüman olarak geçirmek. Son olarak, şunu kullanırız: Arrays.toString(array) sıralanmış diziyi konsola yazdırmak için.

Python'da kabarcık sıralama algoritmasının uygulanması

Python kabarcık sıralaması algoritmasının eşdeğeri:

def bubble_sort(array):
    size = len(array)
    for i in range(size - 1):
        for j in range(size - i - 1):
            if array[j] > array[j + 1]:
                array[j], array[j + 1] = array[j + 1], array[j]

array = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(array)
print("Array ordenado:", array)


 

Kabarcık sıralama algoritmasının avantajları

Kabarcık sıralama algoritmasının bazı avantajları vardır, örneğin:

  1. hafifletmek: Kabarcık sıralama algoritması anlaşılması ve uygulanması kolaydır. Karmaşık bilgi gerektirmez ve programlamaya yeni başlayanlar için uygundur.
  2. Düşük kod karmaşıklığı:Kabarcık sıralama algoritmasını uygulamak için gereken kod nispeten kısa ve özdür. Bu, az sayıda öğeyi sıralamak için hızlı bir seçenek haline getirir.

Kabarcık sıralama algoritmasının dezavantajları

Basitliğine rağmen, kabarcık sıralama algoritmasının bazı dezavantajları da vardır:

  1. Büyük veri kümelerinde verimsizlik: Kabarcık sıralama algoritması büyük veri kümeleriyle çalışırken yürütme süresi açısından verimli değildir. Zaman karmaşıklığı O(n^2)'dir; bu da veri kümesinin boyutu arttıkça yürütme süresinin hızla arttığı anlamına gelir.
  2. Karşılaştırma sayısı: Kabarcık sıralama algoritması, dizi zaten sıralanmış olsa bile çok sayıda karşılaştırma gerçekleştirir. Bu durum gereksiz performans ve kaynak kaybına yol açabilir.
  Hash Arama Yöntemi: Eksiksiz Bir Kılavuz

Kabarcık sıralama algoritmasına alternatifler

Veri kümeleri büyüdükçe ve karmaşıklaştıkça, kabarcık sıralama algoritmasına daha verimli alternatifleri değerlendirmek önemlidir. Popüler alternatiflerden bazıları şunlardır:

  1. Ekleme sıralama algoritması:Bu algoritma listeyi sıralı ve sırasız olmak üzere iki parçaya böler ve sırasız parçanın her bir elemanını sıralı parçanın içindeki doğru pozisyona yerleştirir. En kötü durumda O(n^2) zaman karmaşıklığına sahiptir, ancak çoğu durumda kabarcık sıralama algoritmasından daha verimlidir.
  2. Seçim Sıralama Algoritması:Bu algoritma listeyi sıralı ve sırasız olmak üzere iki kısma ayırır ve sırasız kısımdan en küçük elemanı tekrar tekrar seçip sıralı kısmın sonuna yerleştirir. En kötü durumda O(n^2) zaman karmaşıklığına sahiptir, ancak çoğu durumda kabarcık sıralama algoritmasından daha verimlidir.

Bubble Algoritması SSS

1. Kabarcık sıralama algoritmasının zaman karmaşıklığı nedir?

Kabarcık sıralama algoritmasının zaman karmaşıklığı O(n^2)'dir; burada "n" sıralanacak öğe sayısını ifade eder. Bu, algoritmanın çalışma süresinin liste boyutu arttıkça ikinci dereceden arttığı anlamına gelir.

2. Kabarcık sıralama algoritmasını kullanmak ne zaman uygundur?

Sıralanacak eleman listesi küçük olduğunda kabarcık sıralama algoritması uygundur. Zaman karmaşıklığı nedeniyle, daha verimli algoritmalar mevcut olduğundan büyük veri kümelerinde kullanılması önerilmez.

3. Kabarcık sıralama algoritması kararlı mıdır?

Evet, kabarcık sıralama algoritması kararlı bir sıralama algoritmasıdır. Bu, sıralama işlemi sırasında eşit anahtarlara sahip öğelerin göreceli sırasının korunduğu anlamına gelir.

4. Kabarcık sıralama algoritmasına en iyi alternatif nedir?

Kabarcık sıralama algoritmasına en iyi alternatifin seçimi, bağlama ve problemin özel gereksinimlerine bağlıdır. Bununla birlikte, quicksort ve mergesort gibi daha verimli bazı algoritmalar , daha düşük zaman karmaşıklıkları nedeniyle yaygın olarak kullanılmaktadır.

  Reflection AI: Nedir, nasıl çalışır ve neden bu kadar çok sermaye topluyor?

5. Kabarcık sıralama algoritması geliştirilebilir mi?

Evet, kabarcık sıralaması algoritmasının “çift yönlü kabarcık sıralaması” ve “geliştirilmiş kabarcık sıralaması” gibi varyantları ve optimizasyonları mevcuttur. Bu optimizasyonlar, bir listeyi sıralamak için gereken karşılaştırma sayısını ve yineleme sayısını azaltır.

6. Sıralama algoritmaları hakkında daha fazla bilgiyi nerede bulabilirim?

Sıralama algoritmaları hakkında daha fazla bilgiyi Wikipedia gibi güvenilir kaynaklardan bulabilirsiniz. İşte bazı yararlı bağlantılar:

Sonuç

Bu yazımızda C ve Java programlama dillerinde kabarcık sıralama algoritmasını inceledik. Bu algoritmanın nasıl çalıştığını adım adım öğrendik ve her iki dilde de pratik uygulamasını gördük. Ayrıca, kabarcık sıralama algoritmasının avantajlarını ve dezavantajlarını tartıştık ve daha verimli alternatifleri araştırdık.

Kabarcık sıralama algoritması basit ve uygulanması kolay olsa da, daha büyük veri kümeleri üzerindeki verimliliğini göz önünde bulundurmak önemlidir. Bu gibi durumlarda, eklemeli sıralama veya seçmeli sıralama gibi daha verimli sıralama algoritmalarının değerlendirilmesi tavsiye edilir.

Bu makalenin size kabarcık sıralama algoritması hakkında sağlam bir anlayış kazandırmasını umuyoruz.