Seçmeli Sıralama (Selection Sort) Algoritması Nedir? Adım Adım Uygulamalı Örnek ile Detaylı Anlatım
Algoritmalar dünyasında sıkça kullanılan bir sıralama algoritması olan Seçmeli Sıralama (Selection Sort) algoritmasını ele alalım ve bir örnek üzerinde detaylandıralım. Bu algoritma, küçük veri kümeleri üzerinde kolayca uygulanabilir ve çalışma mantığı basit olan sıralama algoritmalarından biridir.
Seçmeli Sıralama (Selection Sort) Algoritması Nedir?
Seçmeli sıralama, diziyi sıralamak için en küçük öğeyi bulup başa yerleştirme mantığıyla çalışır. Her geçişte dizideki en küçük eleman seçilir ve mevcut sıranın başına yerleştirilir. Bu işlem, dizinin tamamı sıralanana kadar tekrar edilir.
Seçmeli Sıralama Algoritmasının Adımları:
- Dizideki en küçük elemanı bulun.
- Bu elemanı, dizinin ilk elemanıyla yer değiştirin.
- Dizinin ilk elemanını sıralanmış kabul edin.
- Kalan dizi için aynı işlemi tekrarlayın (yani dizinin sıralanmamış kısmında en küçük elemanı bulun ve dizinin başına yerleştirin).
- Dizinin tamamı sıralanana kadar bu işlemi tekrarlayın.
Örnek Üzerinde Seçmeli Sıralama
Bir dizi verelim: [29, 10, 14, 37, 13]
Bu diziyi Seçmeli Sıralama algoritması ile nasıl sıralayacağımızı adım adım görelim:
Adım 1:
Dizideki en küçük elemanı bulmamız gerekiyor. Mevcut dizi: [29, 10, 14, 37, 13]
Bu dizideki en küçük eleman 10‘dur. Şimdi bu elemanı, dizinin başındaki eleman olan 29 ile yer değiştirelim:
Yeni dizi: [10, 29, 14, 37, 13]
Adım 2:
İlk elemanı sıralı kabul ediyoruz. Geriye kalan diziyi dikkate alarak (yani [29, 14, 37, 13]
) en küçük elemanı bulmamız gerekiyor. Bu alt dizideki en küçük eleman 13‘tür. Şimdi 13‘ü, sıralanmamış kısmın başındaki eleman olan 29 ile yer değiştirelim:
Yeni dizi: [10, 13, 14, 37, 29]
Adım 3:
İlk iki elemanı sıralı kabul ediyoruz. Şimdi kalan diziye (yani [14, 37, 29]
) bakıyoruz. Bu alt dizide en küçük eleman 14‘tür. Zaten yerinde olduğu için herhangi bir değişiklik yapmamıza gerek yok:
Dizi aynı: [10, 13, 14, 37, 29]
Adım 4:
İlk üç eleman sıralı. Kalan diziye (yani [37, 29]
) bakıyoruz. Bu alt dizideki en küçük eleman 29‘dur. Şimdi 29‘u, 37 ile yer değiştirelim:
Yeni dizi: [10, 13, 14, 29, 37]
Adım 5:
Artık tüm elemanlar sıralandı. Sonuç: [10, 13, 14, 29, 37]
Zaman Karmaşıklığı
Seçmeli Sıralama Algoritması her geçişte kalan dizinin en küçük elemanını bulmaya çalıştığı için zaman karmaşıklığı her zaman O(n^2)‘dir. Bu, dizideki eleman sayısının karesi kadar işlem yapılabileceği anlamına gelir. Yani büyük veri kümeleri için verimli bir algoritma değildir.
Seçmeli Sıralama Algoritması Neden Kullanılır?
- Basitlik: Anlaşılması ve uygulanması oldukça basit bir algoritmadır.
- Sabit Hafıza Kullanımı: Diziyi sıralamak için ek bir bellek kullanmaz.
- Küçük Veri Kümelerinde Kullanışlı: Algoritma, küçük veri kümeleri için uygun olabilir. Ancak büyük veri kümeleri için daha verimli algoritmalar tercih edilmelidir.
Seçmeli Sıralama ile Diğer Algoritmalar Arasındaki Farklar
- Bubble Sort ile karşılaştırıldığında, Seçmeli Sıralama daha az sayıda yer değiştirme (swap) işlemi yapar, çünkü bir turda yalnızca bir kez yer değiştirme olur.
- Insertion Sort gibi algoritmalar, sıralı dizilere daha uygunken, Seçmeli Sıralama her zaman sabit bir şekilde O(n^2) işlem yapar.
Sonuç
Seçmeli Sıralama (Selection Sort) algoritması, sıralama algoritmalarının temel örneklerinden biridir. Her ne kadar büyük veri kümeleri için verimli olmasa da, basitliği ve anlaşılabilir yapısıyla eğitim amaçlı olarak sıkça kullanılır. Algoritmanın nasıl çalıştığını anlamak, diğer daha karmaşık sıralama algoritmalarını öğrenmek için sağlam bir temel oluşturacaktır.