Bu yazımda sıralama algoritmalarından olan Selection Sort algoritmasını JavaScript ile yazacağız. Öncelikle bu algoritmanın mantığını anlatmak istiyorum.
Bu algoritma, ilk olarak verilen sayı dizisinin en küçük öğesini bulur ve dizinin ilk elemanı ile bu değerin yerlerini değiştirir. Yani en küçük sayı dizinin ilk elemanı olarak yerleştirilir.
Daha sonra bu en küçük sayı gözardı edilerek geriye kalan sayılar yeni bir dizi gibi düşünülür. Aynı işlem tekrar uygulanır. Yani yeni dizide en küçük öğe tespit edilir ve yeni dizinin ilk öğesi ile bu sayının yerleri değiştirilir.
Sayı dizisi küçükten büyüğe sıralanana kadar bu şekilde bir algoritma uygulanır ve sonunda küçükten büyüğe sıralanmış bir sayı dizisi elde edilir.
Şimdi bunu örnek bir sayı dizisi üzerinde adım adım inceleyelim.
Sayı dizimiz şu olsun : 9 1 5 3 7 8
1. Adım : 9 1 5 3 7 8 => 1 9 5 3 7 8 (Dizinin ilk öğesi olan 9 ile en küçük olan 1’in yerleri değiştirildi.)
2. Adım : 9 5 3 7 8 => 3 5 9 7 8 (Dizinin ilk öğesi olan 9 ile en küçük olan 3’ün yerleri değiştirildi.)
3. Adım : 5 9 7 8 => 5 9 7 8 (Zaten dizinin ilk öğesi en küçük olduğu için herhangi bir değişiklik yapılmadı.)
4. Adım : 9 7 8 => 7 9 8 (Dizinin ilk öğesi olan 9 ile en küçük olan 7’nin yerleri değiştirildi.)
5. Adım : 9 8 = 8 9 (Dizinin ilk öğesi olan 9 ile en küçük olan 8’in yerleri değiştirildi.)
Dizinin sıralanmış hali : 1 3 5 7 8 9
Evet gördüğünüz gibi 5 adımda verilen sayı dizisini küçükten büyüğe olacak şekilde sıraladık.
Şimdi de bu algoritmayı JavaScript ile yazalım.
JavaScript ile Selection Sort Algoritması
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<script> function selectionSort(myArray){ let myArrayLength = myArray.length; for(let i = 0; i < myArrayLength-1; i++){ let minId = i; for(let j = i+1; j < myArrayLength; j++){ if(myArray[j] < myArray[minId]){ minId = j; } } let temp = myArray[minId]; myArray[minId] = myArray[i]; myArray[i] = temp; } return myArray; } let myArray = [56, 43, 21, 90, 789, 3, 0, 76, 777, 232, 8, 17, 29]; console.log(selectionSort(myArray)); </script> |
Şimdi kodumuzu test edelim.
Örneğin 56, 43, 21, 90, 789, 3, 0, 76, 777, 232, 8, 17, 29 sayı dizisini parametre olarak verdiğimde console’a şu değerin yazıldığını görebiliyorum.
Çıktısı : 0, 3, 8, 17, 21, 29, 43, 56, 76, 90, 232, 777, 789
Umarım “JavaScript ile Selection Sort Algoritması” başlıklı yazım sizin için faydalı olmuştur.
Şu yazılar da ilginizi çekebilir.
Algoritma Nedir? Nasıl Yazılır? Neden Bu Kadar Önemlidir?
Akış Şeması Nedir? Akış Şeması Şekilleri Nelerdir?
Algoritma Örnekleri (Basit, Orta ve İleri Seviye)
Yeni bir yazımda görüşmek üzere.