Güvercin yuvası sıralaması, n adet öğeyi N adet "güvercin yuvası" (sıralanacak öğelerin alabileceği olası değerlerin sayısı) ile (Θ(n + N)) karmaşıklığıyla sıralayan bir sıralama algoritmasıdır. N O(n) olduğunda algoritma doğrusal zamanda çalışır. Bir sıralama algoritmasının dizideki öğeleri sıralamak için her bir öğeye en az bir kere bakması zorunlu olduğundan doğrusal zaman sıralama algoritmasından bağımsız olarak erişilebilecek en iyi sonuçtur.
Güvercin yuvası algoritması aşağıdaki biçimde çalışır:
- Başlangıçta boş "güvercin yuvalarının" bulunduğu her bir arama anahtarı aralığına bir güvercin yuvası düşecek biçimde bir dizi oluştur.
- Sıralanacak dizinin üzerinden geçerek bütün öğeleri ilgili güvercin yuvasına yerleştir.
- Güvercin yuvası disizinin üzerinden sırayla gerçerek boş olmayan bütün yuvalardaki öğeleri asıl diziye aktar.
Güvercin yuvası sıralaması hızlı çalışması için gereken durumların nadiren oluşması ve diğer daha esnek ve neredeyse aynı hızda çalışan algoritmaların kullanımı daha kolay olduğu için pek kullanılmaz. Özellikle kova sıralaması güvercin yuvası sıralamasının uygulamada daha fazla kullanılan bir türüdür.
Sözde kodu
N adet ayrık elemanı sıralayan güvercin yuvası sıralamasının sözde kodu aşağıdaki gibidir:
function pigeonhole_sort(array a[n]) array b[N] var i,j zero_var (b) (* zero out array b *) for i in [0...length(a)-1] b[a[i]] := b[a[i]]+1 (* copy the results back to a *) j := 0 for i in [0...length(b)-1] repeat b[i] times a[j] := i j := j+1
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Guvercin yuvasi siralamasi n adet ogeyi N adet guvercin yuvasi siralanacak ogelerin alabilecegi olasi degerlerin sayisi ile 8 n N karmasikligiyla siralayan bir siralama algoritmasidir N O n oldugunda algoritma dogrusal zamanda calisir Bir siralama algoritmasinin dizideki ogeleri siralamak icin her bir ogeye en az bir kere bakmasi zorunlu oldugundan dogrusal zaman siralama algoritmasindan bagimsiz olarak erisilebilecek en iyi sonuctur Guvercin yuvasi algoritmasi asagidaki bicimde calisir Baslangicta bos guvercin yuvalarinin bulundugu her bir arama anahtari araligina bir guvercin yuvasi dusecek bicimde bir dizi olustur Siralanacak dizinin uzerinden gecerek butun ogeleri ilgili guvercin yuvasina yerlestir Guvercin yuvasi disizinin uzerinden sirayla gercerek bos olmayan butun yuvalardaki ogeleri asil diziye aktar Guvercin yuvasi siralamasi hizli calismasi icin gereken durumlarin nadiren olusmasi ve diger daha esnek ve neredeyse ayni hizda calisan algoritmalarin kullanimi daha kolay oldugu icin pek kullanilmaz Ozellikle kova siralamasi guvercin yuvasi siralamasinin uygulamada daha fazla kullanilan bir turudur Sozde koduN adet ayrik elemani siralayan guvercin yuvasi siralamasinin sozde kodu asagidaki gibidir function pigeonhole sort array a n array b N var i j zero var b zero out array b for i in 0 length a 1 b a i b a i 1 copy the results back to a j 0 for i in 0 length b 1 repeat b i times a j i j j 1