Python

Python Bead Sort Algoritması

Herkese merhaba, Python yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan bead sort algoritmasını anlatacağım. Hadi başlayalım !

Bead Sort Algoritması

Bead Sort algoritması, özellikle küçük boyutlu ve negatif olmayan tamsayı dizileri için oldukça etkili bir sıralama algoritmasıdır. Bu algoritma, dizinin elemanlarını boncuklar veya boncuklar olarak düşünebiliriz. Dizinin her elemanı için bir boncuk kullanılır ve her elemanın değeri, boncuk sayısına karşılık gelir. Ardından, boncuklar sıralı bir şekilde dizilir ve sonuç olarak, dizinin elemanları da sıralanır.

Python Kodu

Python’da Bead Sort algoritmasını uygulamak oldukça kolaydır. Aşağıda, bu algoritmanın nasıl uygulanacağına dair bir Python kod örneği verilmiştir.

def bead_sort(arr):
    """
    Bead Sort algoritmasını uygular.
    
    :param arr: Sıralanacak dizi
    :return: Sıralanmış dizi
    """
    # Dizinin uzunluğu
    n = len(arr)
    
    # Dizideki maksimum değer
    max_val = max(arr)
    
    # Tüm boncukları içeren bir liste oluşturulur
    beads = [[0 for j in range(max_val)] for i in range(n)]
    
    # Boncukları yerleştirir
    for i in range(n):
        for j in range(arr[i]):
            beads[i][j] = 1
    
    # Her sütundaki toplam boncuk sayısını hesaplar
    for j in range(max_val):
        sum = 0
        for i in range(n):
            sum += beads[i][j]
            beads[i][j] = 0
        
        # Boncukları aşağıya doğru hareket ettirir
        for i in range(n - sum, n):
            beads[i][j] = 1
    
    # Diziyi yeniden oluşturur
    sorted_arr = []
    for i in range(n):
        sorted_val = 0
        for j in range(max_val):
            if beads[i][j] == 1:
                sorted_val += 1
        sorted_arr.append(sorted_val)
    
    return sorted_arr

Bu kod örneğinde, bead_sort adlı bir fonksiyon tanımlanmıştır. Bu fonksiyon, sıralanacak dizi arr parametresi ile çağrılır ve sıralanmış dizi sorted_arr değeri ile geri döndürülür.

İşlem Adımları

Fonksiyonun işleyişi aşağıdaki adımlarla açıklanabilir:

  1. Dizinin uzunluğu ve maksimum değeri belirlenir.
  2. Tüm boncukları içeren bir liste oluşturulur ve her elemanın değeri, boncuk sayısına karşılık gelir.
  3. Boncuklar, her elemanın değerine göre uygun sütuna yerleştirilir.
  4. Her sütundaki boncuk sayısı hesaplanır ve boncuklar aşağıya doğru hareket ettirilir.
  5. Son olarak, sıralanmış dizi yeniden oluşturulur ve geri döndürülür.

Örneğin, bead_sort([3, 1, 4, 2]) çağrısı ile sıralanacak dizi [3, 1, 4, 2]’dir. Bu dizi için boncuklar aşağıdaki gibi yerleştirilebilir:

OOO
O
OOOO
OO

Burada, O boncukları dizi elemanlarını temsil eder. İlk sütunda, 3 tane boncuk vardır çünkü ilk elemanın değeri 3’tür. İkinci sütunda, 1 boncuk vardır çünkü ikinci elemanın değeri 1’dir. Üçüncü sütunda, 4 boncuk vardır çünkü üçüncü elemanın değeri 4’tür. Son sütunda, 2 boncuk vardır çünkü son elemanın değeri 2’dir.

Daha sonra, her sütundaki boncuk sayısı hesaplanır ve boncuklar aşağıya doğru hareket ettirilir:

OOO
O
OOOO
OO

  O
OOO
O
OOO

    O
OOOO
O
OOO

OOOO
OOO
O
OO

Son olarak, sıralanmış dizi yeniden oluşturulur:

[1, 2, 3, 4]

Algoritma Performansı

Bu örnekte, Bead Sort algoritması, O(n) zaman karmaşıklığına sahiptir. Bu, algoritmanın etkili bir şekilde küçük boyutlu dizileri sıralayabileceği anlamına gelir. Ancak, büyük boyutlu diziler için daha az verimli olabilir.

Sonuç

Bead Sort algoritması, nadiren kullanılan bir sıralama algoritmasıdır. Ancak, bu algoritmayı kullanarak sıralama işlemini gerçekleştirmek, özellikle küçük boyutlu tamsayı dizileri için oldukça etkili bir yaklaşım olabilir.

Evet Python ile bead sort algoritması bu şekilde yazılmakta. Tüm Python yazılarımıza buraya, diğer sıralama algoritmaları ile ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu