Pigeonhole Sort (Güvercin Yuvası Sıralama) Algoritması

Selamün Aleyküm Arkadaşlar;

Güvercin yuvası algoritması minimum ve maksimum sayılar arasındaki veriler için bir dizi oluşturup bu dizide sayıları sayıp, buna göre sıralama işlemi yapar. Pek kullanılmaz. Bunun sebebi sıralamanın hızlı şekilde nadiren oluşmasıdır.

Örnekle açıklayacak olursak eğer, şöyle bir dizimiz olsun.

SnapCrab_No-0049

Bu dizimizde 9 ve 19 arasında sayılar var. Arasındaki sayılar kadar güvercin yuvası oluşturuyoruz.

SnapCrab_No-0050

Sıfırıncı index dizideki minimum değeri, sonuncu index ise maksimum değeri temsil eder.

Şimdi A dizimizdeki sayılardan kaç tane varsa B dizimizde (+1 arttıralım) saydıralım.

SnapCrab_No-0051

 

Şimdi ise B dizisine baştan itibaren bakılır. hangi eleman 0’dan büyük ise o eleman sırasıyla diziye eklenir. Değeri -1 azaltılır. 0 olana kadar diziye eklenir. Sonra diğer elemanlara bakılır. Sonunda dizimiz sıralanmış olur.

 

SnapCrab_No-0053

Proje dosyasını buradan indirebilirsiniz.

 

PHP

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.