Şimdiye kadar genel anlamda kod odaklı anlatımlara yer verdim. Çizgimizin biraz dışına çıkmak istiyorum artık. Bazı arkadaşlarımızın yazdığı kodları ezbere yazdığını fark ettim. Bunun için ne yapabilirim diye düşündüm. İşin içinde kod yine olsa ama algoritma olarak da biraz düşündürse güzel olur dedim. İlk aklıma gelen de sıralama algoritmaları oldu nedense.Kod yazma biçimimizi biraz şekillendirmek için sıralama algoritmaları hakkında kısa ve seri bir yazı dizisi yapmak istiyorum. Umarım bu yazı dizisi faydalı olur.Sıralama algoritmaları, verinin hafızada sıralı olarak tutulmasını sağlamak için geliştirilen algoritmalardır. Benim üzerinde durmak istediğim belli başlı sıralama algoritmaları var. Bunların başlıklarını vermek gerekirse; Selection Sort, Bubble sort, Insertion sort, Shell sort, Merge sort, Heapsort, Quicksort, Bucket sort, Radix sort..Selection Sort (Seçmeli Sıralama) diyerek başlamak istiyorum ben konuya.
Selection sort, en küçük değerin en başa getirildiği sıralama algoritmasıdır. Yani küçükten büyüğe doğru giden bir sıralama yapar.Algoritmanın en kötü durum performansı (worst-case performance) O(n2) 'dir. Veri miktarı az olduğu zamanlarda (N<1000) performans olarak bizi sevindirir. Aksi durumlarda performans istediğimiz seviyede olmayacaktır.
Yukarıdaki animasyon da selection sort algoritmasını görebilirsiniz. Dağınık haldeki yapıyı selection sort algoritması ile küçükten büyüğe sıralıyor. Selection sort algoritmasının dizi içerisinde sıralanması hakkında görsel sonuçlar veren bir animasyon paylaşmak istiyorum. Hem çalışma mantığını biraz daha iyi kavramanıza yardımcı olur.
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://www.yazilimdilleri.net/YazilimMakale-2180-Siralama-Algoritmalari--1--Selection-Sort.aspx