Selection Sort Algoritması

Selection Sort Algoritması

Selection Sort Algoritması

  3 dakika Okuma Süresi
Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde Selection Sort (Seçerek Sıralama) Algoritması'nı anlatacağım. Hadi başlayalım !

Selection Sort Algoritması, adından da anlaşılacağı üzere seçme işlemi yaparak sıralama yapar. Yani şöyle; dizinin ilk elemanını diğer elemanlarla kıyaslayıp en küçük elemanı seçip ilk sıraya koyar, sonra ikinci elemanı diğer elemanlarla kıyaslayıp en küçük olanı ikinci sıraya, üçüncü elemanı diğer elemanlarla kıyaslayıp en küçük olanı üçüncü sıraya, .... diye giderek diziyi küçükten büyüğe sıralar.
Hem dizinin her elemanını teker teker dolaştığı, hem de ilgili elemanı diğer elemanlarla kıyasladığı için iç içe iki for döngüsü koşar. Bu yüzden algoritmanın karmaşıklığı O(n2)'dir. Dolayısıyla algoritması performansı düşüktür.

Bu bahsettiklerimize göre ilgili kodu yazalım.
Yazacağımız kodda SelectionSort isimli dışarıdan integer dizisi alıp geriye integer dizisi döndüren fonksiyonu hazırlayalım.

int[] SelectionSort(int[] dizi)
{
    for(int i = 0; i < dizi.Length; i++)
    {
        int index = i;
        for(int j = i + 1; j < dizi.Length; j++)
            if(dizi[j] < dizi[index])
                index = j;
        int enKucuk = dizi[index];
        dizi[index] = dizi[i];
        dizi[i] = enKucuk;
    }
    return dizi;
}
Bu kodların mantığını açıklamıştık fakat yine de hızlıca bi üstünden geçmek istiyorum.
Dışarıdan integer dizisi aldık ve bu diziyi for ile döndük, her adımda o anki elemanı ondan sonra gelen elemanlarla kıyaslamak için içeride bi for daha döndük ve onun her adımında elemanları kıyasladık.
Eğer dışarıdaki for'un elamanı içerideki for'un elemanından küçük ise enKucuk değişkenine o değeri atadık.
İçerideki for bir kere tamamlandığında dışarıdaki for'a göre en küçük değeri bulduk ve dizide yer değiştirme işlemi yaptık.
Tüm işlemler tamamlandığında dışarıdan aldığımız integer dizisi küçükten büyüğe doğru sıralanmış olacaktır ve bu diziyi geriye döndürüyoruz.
Yeni bir dizi oluşturmadık, dışarıdan aldığımız dizide değişiklikler yapıp geriye döndürdük.

Evet bu dersimizde bu kadardı, tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.


  • İçeriği Paylaş:

İÇERİĞİ DEĞERLENDİR

Toplam Değerlendirme Sayısı: 0
Toplam Değerlendirme: 0 / 5

Cevap Yaz