MATLAB Seçerek Sıralama (Selection Sorting) Algoritması


Kaynak: Vikipedi

Bu yazımızda, bir Sıralama algoritması olan “Seçerek Sıralama” (Selection Sorting) algoritmasına değineceğiz. Seçerek Sıralama algoritmasını diziyi küçükten büyüğe sıralamak için kullanacağız.

Seçerek Sıralama algoritmasının işleyişi; dizideki en küçük elemanı ilk sıraya yerleştirir, kalanlardan en küçük olanı da ikinci sıraya yerleştirir.Bir eleman kalana kadar bu şekilde devam eder.

Buradaki bağlantıya tıklayarak, sıralama algoritmalarının çalışma şekillerine ait animasyona bakabilirsiniz.

 

 

Örnek olarak, “a” isimli dizinin adım adım küçükten büyüğe sıralanması:

a = [3 4 1 1000 -1 25 35 111];

[3 4 1 1000 -1 25 35 111]

[-1 4 1 1000 3 25 35 111]

[-1 1 4 1000 3 25 35 111]

[-1 1 3 1000 4 25 35 111]

[-1 1 3 41000 25 35 111]

[-1 1 3 4 25 1000 35 111]

[-1 1 3 4 25 35 1000 111]

[-1 1 3 4 25 35 111 1000]

Algoritmanın kodları:

function sirali_vektor = secerek_sirala(Vektor)
 for i=1:length(Vektor)-1
    enk = Vektor(i);
    enk_indis = i;
    for j=i+1:length(Vektor)
        if Vektor(j) < enk
            enk = Vektor(j);
            enk_indis = j;
        end         
    end 
    depo = Vektor(i);
    Vektor(i) = Vektor(enk_indis);
    Vektor(enk_indis) = depo;    
 end
 sirali_vektor = Vektor;
end

İlk döngü ( i ) en küçük elemanın atanacağı indisi temsil ediyor. İkinci döngüyü ( j ) ise en küçük elemanı bulma amacıyla kullanıyoruz. Dolayısıyla ikinci döngüyü, ilk döngünün bulunduğu yerden bir sonraki sıradan başlatmamız gerekiyor. (for j=i+1) Algoritma son elemanda biteceği ve ikinci döngü, ilk döngüden bir sonraki sıradan başladığı için; ilk döngünün bitiş değeri, “a” dizisinin boyutundan bir eksik olması gerekiyor. Dizinin elemanlarının yerlerini değiştireceğimiz için bir saklama değişkeni(depo) kullanıyoruz. Programın ekran görüntüsü:

Fonksiyonun adı ile Script(“.m”) dosyasının adının aynı olması gerektiğini unutmayalım.

Algoritmayı kullanmak için komut penceresine:

secerek_sirala([Sıralanmasını istediğiniz dizi])

Programın “.m” dosyasını aşağıdaki linkten indirebilirsiniz. Görüşmek üzere!

Sponsorlu LinkİNDİR (Devam Et butonuna bastıktan sonra dosya otomatik indirilecektir, sekmeyi kapatabilirsiniz.)

Kaynak: Carnegie Mellon University, School of Computer Science

close

Yeni yazılardan haberdar olmak için sitemize abone olun.

İstenmeyen posta göndermiyoruz! Sadece yeni yazılarla ilgili mail alacaksanız.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir