Commodore sayı 2, sayfa 13

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 13

Programın çapından da görülebileceği gibi (liste 4) bu yöntem az önce ele aldığımız diğer yöntemlerden daha karmaşıktır. Her şeyden önce böyle bir sıralama yöntemi için daha fazla bellek gerekmektedir. Bunun nedeni, sadece programın göreceli olarak daha fazla yer tutması değil, aynı zamanda daha fazla değişken kullanmasıdır da. Söz gelimi henüz sıralanmamış alt kümelerin parametrelerinin saklanması için başlı başına bir deste-bellek (stack) görevlendirilmektedir. (Bir kerede ancak bir tek alt kümenin ele alınabileceğini anımsayın.) Bunların yanısıra Çabuk sıralamanın asıl çekiciliği tartışılmaz hızıdır. (Tablo-1'deki zamanlamalara bkz.) Sıralanacak ögelerin sayısı arttıkça diğer üç sıralama yönteminin gereksindikleri zaman üst sayısal (exponential) bir biçimde artarken, Çabuk sıralamanın öge başına harcadığı zaman, listenin çapı büyüse de, hemen hemen aynı kalmaktadır. Bu özellik denenmemiş bir listenin Çabuk sıralama ile ne kadar bir zamanda düzenlenebileceğini önceden kestirme olanağını verir. Bu tür bir sıralama baştan aşağı karışık yazılmış kütükleri sıralarken en etkin sonucu verecektir; ancak kısmi olarak düzenlenmiş bir kütüğe uygulandığında biraz daha yavaş çalışacağı söylenebilir. Ve dikkat! Bu seçmeye aldığımız sıralama yöntemlerinin tümü de aynı ögenin tekrarlandığı (duplicate) durumları işleme yeteneğine sahiptirler.

Uyarlamalar İçin İpuçları

Burada dikkat edilmesi gereken nokta, yukarıda listesi çıkarılmış programlarda bütün dizi alt indislerinin (subscript) sıfırdan başlamalarıdır.

Sözgelimi DIM IMFS(10) ifadesi IMFS$ için on bir hane ayırmış olmaktadır (on hane değil). Bütün sıfır elemanlar belleği tutumlu kullanmak amacıyla hesaba katılmışlardır ve bu noktanın özellikle alt indisleri 1'den başlatan aygıtlara uyarlama yaparken gözetilmesi gerekir. Gözden kaçırılmaması gereken bir başka nokta da SWAP ifadesinin (statement) kullanılışıdır. Bu ifade ardından gelen iki değişkenin içerdiklerini değiş tokuş ettirir. Böyle bir ifadeye sahip olmayan aygıtlar için “SWAP IMES(X), IMFS(Y)” satırı aşağıda gösterildiği gibi yeniden yazılabilir:

TEMP$ —- — - TEMP$

Özet Olarak Söylenebilecekler

Kabarcık sıralama: • Kısmi sıralanmış kütükler için • Dar hacimli kütükler için • Bellek kapasitesinin daha yetkin yöntemleri uygulamaya yetmediği durumlarda. Dalgacık sıralama: • Kabarcık sıralamanın kullanıldığı yerlerde Ayıklamalı sıralama: • Dar/orta hacimli kütükler için • Bellek kapasitesinin daha yetkin yöntemleri uygulamaya yetmediği durumlarda Çabuk sıralama: • Orta/büyük hacimli kütükler için • Özellikle de kısmi olarak sıralanmamış olanlar için

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