Commodore sayı 2, sayfa 11

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 11

Dalgacık Sıralama

İlke olarak kabarcık sıralamadan farklı değildir. Ancak bu yöntemde ögeler, yükselen hava kabarcıkları gibi dizey ya da dosya boyunca aşağıdan yukarıya değil de, dalgacıklar halinde yukarıdan aşağıya gönderilirler.

Ne ki bu programla biz MARKER adını verdiğimiz bir çentik (flag) takdim ediyoruz. MARKER'in görevi dizinin herhangi bir taranmasında bir yer değişimi gerçekleşmesi halinde bunu haber vermek olacak. Hiçbir değiş tokuşun yapılmadığı durumda MARKER “çentiği atılmayacak”, yani değişken ilk değerini koruyacak, bu da dizinin sıralanmış olduğu anlamına gelecektir. Dolayısıyla program yürütümünden (execution) erken bir çıkış yapılabilecek, böylece işleme süresi (run time) de kısaltılmış olacaktır. Özgün örneğimize dönersek

Dalgacık Sıralamanın nasıl çalıştığını görebilir ve önerdiğimiz çentiğin yöntemi anlamak açısından kullanışlılığına tanık olabiliriz. Çizim-2) Elimizdeki örnekte program yürütümünden erken çıkış fazla bir fark yaratmamakla birlikte (ancak tek bir kıyaslamadan kurtulunabiliyor) daha geniş kapsamlı dosyalarda çalışırken sıralama için gereken zamandan hatırı sayılır ölçüde ekonomi yapılabilmektedir. Özellikle de ele aldığımız dosya sadece kısmi bir sıralamadan geçecekse (yalnızca tek bir kayıt doğru hanede değilse); n-1 kıyaslamalarının maksimumu düşer ve sıralama zamanı son derece kısalır. Ancak kıyaslamaların tümünün de yapıldığı durumlarda bu sıralama yöntemi en azından bir bölümüyle Kabarcık sıralamadan daha yavaş çalışmaktadır. Bunun nedeni de içiçe döngülerde (nested loops) MARKER'in görevlendirilmesi ve test edilmesi için gereken fazla zamandır.

Ayıklamalı Sıralama

Ayıklamalı sıralamanın yukarıda sözünü ettiğimiz diğer iki yöntemden biraz daha üstün olduğunu söyleyebiliriz. Bu yöntemde de üstünde çalışılan dizinin belli sayıda taramaları

Klavyeyle gezinmek için ← ve → tuşları.