Sıralama Algoritmaları

Eyl 08, 2013

Sıralama ve arama tekniklerinden pek çok programda yararlanılmaktadır. Günlük
yaşamımızda elemanların sıralı tutulduğu listeler yaygın olarak kullanılmaktadır. Telefon
rehberindeki bir kişinin telefon numarasının bulunması bir arama (search) işlemidir. Telefon
rehberlerindeki kayıtlar kişilerin soyadlarına göre sıralıdır. Bir telefon numarasının kime ait
olduğunu bulmaya çalışmak da bir başka arama işlemidir. Eğer telefon rehberi kişilerin
soyadlarına göre alfabetik olarak değil de telefon numaralarına göre kronolojik olarak sıralı
olursa bu, arama işlemini basitleştirir. Kütüphanelerdeki kitapların özel yöntemlere göre
sıralanarak raflara dizilmesi, bilgisayarın belleğindeki sayıların sıralanması da yapılacak
arama işlemlerini hızlandırır ve kolaylaştırır. Genel olarak eleman toplulukları, bilgisayarda
da, telefon rehberi gibi örneklerde de daha etkin erişmek (aramak ve bilgi getirmek) üzere
sıralanır ve sıralı tutulurlar.

Eleman (kayıt, yapı ...) toplulukları genelde (her zaman değil) bir anahtara göre sıralı
tutulurlar. Bu anahtar genelde elemanların bir alt alanı yani üyesidir (Elemanlar soyada göre
sıralı olursa soyadı anahtardır, numaraya göre sıralı olursa numara anahtardır, nota göre
olursa not alanı anahtardır). Elemanlar topluluğu içindeki her elemanın anahtar değeri kendinden önce gelen elemanın anahtar değerinden büyükse artan sırada, küçükse azalan sırada sıralıdır denilir (ilgili anahtara göre).
Sıralama, sıralanacak elemanlar bellekte ise internal (içsel), kayıtların bazıları ikincil bellek
ortamındaysa external (dışsal) sıralama olarak adlandırılır.

Sıralama ve arama arasında bir ilişki olduğundan bir uygulamada ilk soru sıralama gerekli
midir? olmalıdır. Arama işlemleri yoğun ise, sıralamanın veya o şekilde tutmanın getireceği
yük, sıralı olmayan kayıtlar üzerindeki arama işlemlerinin getireceği toplam yük yanında çok
hafif kalacaktır. Bu karar verilirse, arkasından sıralamanın nasıl yapılacağı ve hangi sıralama
yöntemlerinin kullanılacağı kararlaştırılmalıdır. Bunun nedeni, tüm diğer yöntemlerden üstün
evrensel bir sıralama tekniğinin olmamasındandır.

Çok yaygın kullanılan sıralama algoritmaları şunlardır;

  • Merge Sort
  • QuickSort
  • Radix Sort
  • Insertion Sort

Sıralama algoritmaları hakkında detaylı bilgi alt başlıklarda bulunmaktadır.