Header Ads

Hızlı Sıralama (Quick Sort) Algoritması


  Hızlı sıralama algoritması, sıralama algoritmalarında karşımıza sık sık çıkan bir algoritmadır. Böl ve yönet (divide and conquer) felsefesiyle çalışır. İlgili dizinin elemanlarından bir tane pivot seçilerek alt ve üst değerlerin sıralanmasıyla birbirini takip eden adımlardan oluşur. Pivot elemandan küçük olanlar sola, büyükler sağ tarafa sıralanır. Sonrasında alt ve üst taraflara tekrar hızlı sıralama algoritması uygulanarak pivot seçilir.

Örneğin dizimiz [60 40 10 20 30 50] olsun. Pivot olarak seçilen elemanın 40 olduğunu varsayalım. 40 dan küçük olan elemanlar [10 20 30] sol tarafa ve büyük olanlar ise [60 50] sağ tarafa ayrılır. Daha sonrasında tekrar hızlı sıralama algoritması çalıştırılarak sıralama yapılır.

Hızlı sıralama algoritmasının en kötü durumdaki zaman karmaşıklı O(n^2) 'dir. Ancak bazı kaynaklarda ortalama zaman karmaşıklığı olan O(nlog2n) olarak kabul edilmektedir.

Hızlı sıralama algoritmasının dezavantajı, rekürsif bir yapı içermesidir. Aşağıda hızlı sıralama algoritması için kaba kod verilmiştir:


C dilinde tam kodu ise aşağıdaki şekildedir:


Hiç yorum yok

Blogger tarafından desteklenmektedir.