Yazan : Şadi Evren ŞEKER
Bilgisayar bilimlerinde sıralama işleminin çok büyük veriler üzerinde yapılması durumunda tercih edilen bir sıralama yöntemidir. Basitçe sıralama işleminin doğrudan verilerin yerinin değiştirilemsi ile değil de daha çok bu verileri gösteren gösterici (pointer) veya nesne atıfları (object referrer) ile yapılmasıdır.
Örneğin sistemimizdeki öğrencileri sıralamak isteyelim. Her öğrenci bilgisi de sistemde 1MB kadar yer kaplıyor olsun (kişisel bilgileri ve bağlı olduğu bilgilerin tutulduğunu ve çok yer kapladığını düşünelim). Basit bir sıralama işleminde O(n logn) vakit harcanağını düşünürsek, ortalama 100 elemanlı bir listenin sıralanması için 700 civarı işlem gerekcektir. Bunun anlamı bilgisayarın hafızasında (RAM) 700 MB civarı bir bilginin hareket ettirilmesi demektir.
Bunun yerine her veriyi gösteren birer atıf (pointer, gösterici) bulunsa ve bu atıflar hareket ettirilse (tahminen her birisi öğrencilerin numarasını ve öğrencinin hafızadaki (RAM) yerini tutan yapılardan oluşacağı için birkaç byte’ı geçmeyecektir, kabaca 10byte kapladığını düşünürsek) yapılan işlem, hafızada 7KB civarında verinin hareket ettirilmesi demektir.
İlkine göre oldukça avantajlı olan ikinci durumda, hafızada ekstradan bir bilgi tutulmuştur. Bu ilk başta hafızanın verimsizleşmesi (fazladan veri tutulması) anlamına gelse de aslında yapılan işlemlerin süresini kısaltması ve kopyalama işlemi sırasında açılan ilave hafıza alanlarını azaltması açısından bir kazanımdır.
Sonuçta elde edilen ve gerçek nesneleri gösteren bu ilave listenin kullanılması ile gerçek verilerin hafızada sıralanması da mümkündür. Ancak buna gerek duyulmaz çünkü veriye erişmek için bu ilave liste kullanılabilir.