MATLAB Seçerek Sıralama (Selection Sorting) Algoritması
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.
Görsel Kaynak:Vikipedi
Ö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, 4, 1000, 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])

Bütün MATLAB kodlarına Github sayfam aracılığı ile erişebilirsiniz. Github sayfamın linkine aşağıdan ulaşabilirsiniz. Görüşmek üzere!
Github: Github MATLAB
Sitemize destek olmak isteyen sponsorlar için link: Patreon
Kaynak: Carnegie Mellon University, School of Computer Science
Enjoy Reading This Article?
Here are some more articles you might like to read next:
- Python Sayı Tabanı Dönüşümleri (Taban Aritmetiği)
- Python Hesap Makinesi Programı
- Matlab Hesap Makinesi Programı
- MATLAB Switch – Case Yapısı
- MATLAB Rastgele Sayı Üretme (rand, randi, randn)
- MATLAB Excel’e Veri Aktarma
- MATLAB Gantt Grafiği Oluşturma
- MATLAB Excel’den Veri Aktarma
- Python ile EKOK ve EBOB Bulma
- MATLAB ile EKOK ve EBOB Bulma