Sıralama Algoritmalarının Karşılaştırılması

Halis Ak
3 min readMay 10, 2019

--

Kullanılacak sıralama algoritması seçilirken uygulanacak veri yapısı detaylı olarak ele alınmalıdır. Örneğin, Quicksort çok hızlı bir algoritmadır ancak uygulanması nispeten karmaşıktır, bu nedenle küçük veri grupları için pratik olmayabilir. Kabarcık sıralama ise yavaş bir algoritmadır fakat uygulanması çok kolaydır.

Sıralama algoritmalarının çalışma hızları, sıralanacak verinin büyüklüğü, kısmen sıralı olması, tersten sıralı olması veya tümüyle karışık yapıda olmasına bağlı olarak farklılık göstermektedir. Seçim yapılırken verinin bu anlamda değerlendirilmesi ve uygun algoritmanın tercihi en iyi sonuç için faydalı olacaktır.

Sık kullanılan sıralama algoritmalarının, verinin karmaşıklığına göre gösterdiği performans :

· 2,4 GHz Intel Core i7 cpu ile yapılan örnek performans testi :

Genel olarak quicksort daha hızlı olmasına rağmen örnek veri tipinde insertion sort algoritmasının daha iyi bir performans sergilediği görülüyor.

Verinin karmaşıklığına göre algoritma performanslarını gözlemlemek için aşağıdaki uygulamaya göz atabilirsiniz :

Performans karşılaştırmasını yaptığımız başlıca yöntemler ile birlikte, çok sayıda farklı sıralama algoritması kullanılmaktadır. Bunların büyük bölümü aşağıda listelenmiştir.

· Selection Sort

· Bubble Sort

· Insertion Sort

· Merge Sort

· Quick Sort

· Iterative Merge Sort

· Iterative Quick Sort

· Heap Sort

· Counting Sort

· Radix Sort

· Bucket Sort

· ShellSort

· TimSort

· Comb Sort

· Pigeonhole Sort

· Cycle Sort

· Cocktail Sort

· Strand Sort

· Bitonic Sort

· Pancake sorting

· Binary Insertion Sort

· BogoSort or Permutation Sort

· Gnome Sort

· Sleep Sort — The King of Laziness / Sorting while Sleeping

· Structure Sorting (By Multiple Rules) in C++

· Stooge Sort

· Tag Sort (To get both sorted and original)

· Tree Sort

· Cartesian Tree Sorting

· Odd-Even Sort / Brick Sort

· QuickSort on Singly Linked List

· QuickSort on Doubly Linked List

· 3-Way QuickSort (Dutch National Flag)

· Merge Sort for Linked Lists

· Merge Sort for Doubly Linked List

· 3-way Merge Sort

· Recursive Bubble Sort

· Recursive Insertion Sort

Linkler takip edilerek algoritmalar hakkında detay bilgi alınabilir.

Karşılaştırma Tabloları :

Kararlılık kriteri, bir algoritmanın bitiş kontrolüne dayanmaktadır. Örneğin sıralı bir dizi verilse bile sıralama işlemi yapmaya çalışır mı?

--

--