Quick Sort (Hızlı Sıralama)
Herkese merhaba bu yazımızda sıralama algoritmalarından hızlı sıralama algoritmasına değineceğiz.Bu yazıyı okumadan önce sıralama algoritmalarını adım adım incelemek için buraya tıklayınız ve site üzerinden sıralama algoritmalarını inceleyiniz.
Giriş
Bu algoritmada geçen yazılarımızda bahsettiğimiz parçala fethet felsefesine dayanır.Burada pivot eleman dedikleri bir dayanak noktası seçmemiz gerekiyor.Bu pivot elemanı bulmak için çeşitli algoritmalar mevcut yada rastgelelik ile bulan hocalarımızda var.Bu algoritma buffer bazlı çalışıyor.2 adet sol ve sağ olmak üzere pointer oluşturuyor. Sol ve sağ pointerlar birleşene kadar algoritma çalışmaya devam ediyor.
Algoritmayı Çalıştıralım
Örneğin sıralamak istediğimiz veri dizisi 26 33 35 29 19 12 22 24 olsun.Burada pivotu ortadaki eleman olacak şekilde seçelim dizi 8 elemanlıdır orta noktası 4. Elemandır yani 29 yukarıda bahsettiğim gibi bu farklı bir rakamda olabilir.
Pivottan küçük ve büyük seklinde sayı dizisini iki parçaya bölelim.
Pivottan Küçük=26,29,19,12,22,24
Pivottan Büyük=33,35
1.Adım
Oluşan dizileri kendi aralarında sıralamamız gerekir.Oluşan bu iki diziyi quick sort bir daha verdiğimizde 26 33 35 (29) 19 12 22 24 orjinal dizimiz budur.Quick sorta bir daha verdiğimizde;
2.Adım
26 19 12 22 24 <= (29) <= 33 35 burada tekrar orta noktayı bulacağız.Yeni orta nok.(pivot) 12 sayısıdır.
3.Adım
26 19 (12) 22 24 sayı dizisini ayarlayalım simdi,
(12) <= 19 22 24 26
Ilk dayanak noktamız 29 idi ordada 2 sayı var orta noktayı hem bulamayız hem 2 sayıyı da zaten sıralamıştık.
4.Adım
Bu adım birleştirme adımı işte;
12,19,22,24,26,33,36 şeklinde sonuç ile diziyi quick sort a göre sıraladık.