Skip to main content
Sıralama Algoritmaları ( sorting algorithms)

Sıralama Algoritmaları nedir ? ne işe yarar ?

Merhabalar , bu yazımızda C dilinde ki sıralama algoritmaları ‘ndan (sorting algorithms)’ bahsedeceğiz. Kaç tane , hangi sıralama algoritmalarının olduğuna ve hangi algoritmanın ne işe yaradığına dair bir yazı olacak şimdiden keyifli okumalar .

Algoritma Nedir ?

Tanımını yapmak gerekirse ; Bir işi yapmak için tasarlanmış ve açıkla belirlenmiş bir durumda sonlanan sonlu işlemler kümesidir . Yani burda anlatmak istediğimiz ; Sorunumuzu çözmek için veya belirli bir amaca ulaşmak için tasarladığımız yol diyebiliriz. Örneğin 4 sayının ortalamasını alan basit algoritmayı aşağıda görebilirsiniz ;

A0 --> Başla
A1 --> Sayaç=0 (Sayaç'ın ilk sayısı 0 olarak başlar.)
A2 --> Sayı=? : T=T+Sayı (Sayıyı giriniz. T'ye sayıyı ekle ve T'yi göster.)
A3 --> Sayaç=Sayaç+1 (Sayaç'a 1 ekle ve sayacı göster.)
A4 --> Sayaç<4 ise A2'ye git. (Eğer sayaç 4'ten küçükse Adım 2'ye git.)
A5 --> O=T/4 (Ortalama için T değerini 4'e böl)
A6 --> O'yu göster. (Ortalamayı göster.)
A7 --> Dur 

Sıralama Algoritmaları Nedir ? Ne işe yarar ?

Sıralama Algoritmaları , elimizde var olan verileri isminden de anlaşıldığı gibi belirli bir düzene veya bir sıraya koymak için geliştirilen bazı algoritmalardır . Büyükten küçüğe , küçükten büyüğe , permütasyon gibi birçok sıralama algoritması bulunur. Aşağıdaki listede tüm sıralama algoritmalarını görebilirsiniz ;

Sıralama Algoritmaları ( Sorting Algorithms )

Yukarıdaki Tabloda , "n" ifadesi dizideki eleman sayısını belirtir. "Ortalama" ve "En Kötü" kolonları dizide var olan karmaşıklığı belirtirken “Bellek” kolonu ise dizinin sıralanabilmesi için dizinin kendisinin kapladığı alandan ne kadar fazla alana ihtiyaç olduğunu gösterir. Aynı zamanda "Kararlı mı?" kolonunda ki kararlı olan sıralama algoritması dizi içerisinde değeri aynı olan öğelerin sırasını asla değiştirmez. Ancak kararsız olan sıralama algoritması değeri aynı olan öğelerin sırasını değiştirebilir.

Sıralama Algoritmaları Tüm zaman karmaşıklıkları ;

Zaman Karmaşıklığı
(Time Complexity)
Algoritma Adı En İyi Durum (Best-Case) Ortalama Durum (Average-Case) En Kötü Durum (Worst-Case)
Seçerek Sıralama(Selection Sort) Ω(n^2) θ(n^2) O(n^2)
Kabarcık Sıralaması (Baloncuk sıralaması, Bubble Sort) Ω(n) θ(n^2) O(n^2)
Araya Sokma Sıralaması(Insertion Sort) Ω(n) θ(n^2) O(n^2)
Kabuk Sıralaması (Shell Sort) O(n) O(n3/2) O(n3/2)
Yığınlama Sıralaması (Heap Sort) Ω(n log(n)) θ(n log(n)) O(n log(n))
Hızlı Sıralama Algoritması (Quick Sort Algorithm) Ω(n log(n)) θ(n log(n)) O(n^2)
Birleştirme Sıralaması (Merge Sort) Ω(n log(n)) θ(n log(n)) O(n log(n))
TimSort Ω(n) θ(n log(n)) O(n log(n))
Kova Sıralaması (Bucket Sort) Ω(n+k) θ(n+k) O(n^2)
Taban Sıralaması (Radix Sort) Ω(nk) θ(nk) O(nk)
Sayarak Sıralama (Counting Sort)
Sallama Sıralaması (Shaker Sort)
Rastgele Sıralama (Bogo Sort)
Şanslı Sıralama (Lucky Sort)
Serseri Sıralaması (Stooge Sort)
Şimşek Sıralaması (Flahs Sort, Bora Sıralaması)
Tarak Sıralaması (Comb Sort)
Gnome Sıralaması (Gnome Sort)
Permütasyon Sıralaması (Permutation Sort)
İplik Sıralaması (Strand Sort)

Yukarıda ki sıralama algoritmalarının bazıları yer değiştirip sıralama yaparken bazıları ekleyerek sıralama yapar listeden üzerine tıklayarak sıralama hakkında ki yazılarımızı okuyabilirsiniz. Eğer hala tıklanabilir değil ise http://kodlar.net/ ‘i takip ediniz. Eksik olan yerleri de lütfen bildiriniz.

C ile ilgili daha fazla yazımızı okumak için http://kodlar.net/ ‘ i takip edebilirsiniz . Sıralama algoritmalarıyla ilgili yabancı döküman için burayı ziyaret edebilirsiniz .

Emre Sualp

Kocaeli Üniversitesi Bilgisayar Mühendisliği 4. sınıf öğrencisiyim .Java , Javascript ve Android programlama ile ilgileniyorum.Bildiklerimi aktarmak ve yeni öğrendiğim konuları pekiştirmek için yazılarımı sizlerle paylaşacağım.

2 thoughts to “Sıralama Algoritmaları nedir ? ne işe yarar ?”

Bir cevap yazın

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