Merhaba arkadaşlar daha önce Kabarcık sıralama algoritmasını incelemiştik. Bu yazımızda da seçmeli sıralama(Selection Sort) algoritmasını ele alacağız.
Dedik ya seçme sıralama, sürekli en küçüğü seçiyor ve karşılaştırdığı sayı ile yer değiştiriyor. Daha sonra bunu ikinci. üçüncü diye devam ediyor ta ki dizi son bulana kadar. Hemen adım adım örneğini yapalım.
Dizimiz: 35 – 17 – 40 – 12 – 4 olsun
Adım 1) Sırayla hepsini gezer algoritma ve en küçük elemanı bulduğunda yani 4 onunla 0.indisde olan 35 yer değiştirir.
4 – 17 – 40 – 12 –35
Adım 2) Aslında ilk adımda en küçüğü dizimizin ilk elemanı oldu bu yüzden 17 ile ikinci en küçük değerin yerini değiştireceğiz.
4 – 12 – 40 – 17 – 35
Adım 3) Şimdi 2. indis için dönecek algoritmamız
4 – 12 – 17 – 40 – 35
Adım 4) Şimdi 3.indis için dönüyoruz ve sıralanmış olacak..
4 – 12 – 17 – 35 – 40
ve dizimiz sıralandı.
Hemen koduna geçecek olursak:
Seçmeli Sıralama C# Kodu
public static int[] SelectionSort(int[] A) { int tks; int min; for (int i = 0; i < (A.Length)-1; i++) { min = i; for (int j = i; j < (A.Length); j++) { if (A[j] < A[min]) { min = j; } } tks = A[i]; A[i] = A[min]; A[min] = tks; } return A; }
Bu kodun aynısını Java içinde çalıştırabilirsiniz.
Seçmeli Sıralama algoritması da kısa diziler için gayet başarılı bir algoritmadır. Fakat bir üniversitenin öğrencileri gibi büyük diziler de başarılı değildir. Çünkü sıralamak için her eleman için n-1 kere dolaşmaktadır bu da maliyeti artırmaktadır.
Umarım faydalı olmuştur.