Tavsiye, 2024

Editörün Seçimi

Hızlı Sıralama ve Birleştirme Sıralama arasındaki fark

Hızlı sıralama ve birleştirme sıralama algoritmaları, benzer şekilde çalışan bölme ve fethetme algoritmasına dayanır. Hızlı ve birleştirme sıralaması arasındaki önceki fark, hızlı sıralamada pivot öğesinin sıralama için kullanılmasıdır. Öte yandan, birleştirme sıralaması, sıralama işlemini gerçekleştirmek için pivot öğesini kullanmaz.

Her iki sıralama tekniği, hızlı sıralama ve birleştirme sıralama, elemanların kümesinin ayrıldığı ve yeniden düzenlendikten sonra birleştirildiği bölme ve fethetme yöntemine dayanır. Hızlı sıralama genellikle büyük bir öğe kümesini sıralamak için birleştirme sıralamasından daha fazla karşılaştırma gerektirir.

Karşılaştırma Tablosu

Karşılaştırma için temelHızlı sıralamaBirleştirme sıralaması
Dizideki öğelerin bölümlenmesiBir eleman listesinin bölünmesi mutlaka ikiye ayrılmaz.Dizi her zaman ikiye ayrılır (n / 2).
En kötü durum karmaşıklığıO (n2)O (n log n)
İyi çalışıyorKüçük diziHer tür dizide iyi çalışır.
hızKüçük veri kümesi için diğer sıralama algoritmalarından daha hızlı.Her tür veri setinde tutarlı hız.
Ek depolama alanı gereksinimiAzDaha
verimDaha büyük diziler için verimsiz.Daha verimli.
Sıralama yöntemiİçdış

Quick Sort'un tanımı

Hızlı sıralama, kısa diziler için hızlı olduğu için yaygın olarak kullanılan sıralama algoritmasıdır. Elementlerin seti, daha fazla bölünmesi mümkün olmayana kadar tekrar tekrar parçalara bölünür. Hızlı sıralama ayrıca bölüm değişimi sıralaması olarak da bilinir. Elemanları bölümlemek için bir anahtar elemanı (pivot olarak bilinir) kullanır. Bir bölüm, anahtar öğeden daha küçük olan öğeleri içerir. Başka bir bölüm, anahtar öğeden daha büyük olan öğeleri içerir. Elemanlar özyinelemeli olarak sıralanır.

A'nın, sıralanması gereken n sayısının A [1], A [2], A [3], …… .., A [n] dizileri olduğunu varsayalım. Hızlı sıralama algoritması, aşağıdaki adımlardan oluşur.

  1. İlk eleman veya anahtar olarak seçilen herhangi bir rastgele eleman, = A (1) anahtarını varsayar.
  2. “Low” işaretçisi ikinciye yerleştirilir ve “yukarı” işaretçisi dizinin son elemanına yerleştirilir, yani low = 2 ve yukarı = n;
  3. Tutarlı bir şekilde, “low” işaretçisini (A [low]> tuşu) olana kadar bir konum kadar artırın.
  4. Sürekli olarak, "yukarı" işaretçisini (A [yukarı] <= tuşu) olana kadar bir konum kadar azaltın.
  5. Yukarı yukarı düşükten büyükse A [yukarı] ile A [düşük] değişimi yapın.
  6. 5. adımdaki koşul başarısız olana kadar (örn. Yukarı <= düşük) 3., ve 5. adımları tekrarlayın, ardından A ile [yukarı] tuşuyla değiştirin.
  7. Tuşun solundaki elemanlar tuştan daha küçükse ve tuşun sağındaki elemanlar tuştan büyükse, dizi iki alt diziye bölünür.
  8. Yukarıdaki prosedür, dizinin tamamı sıralanana kadar alt dizilere tekrar tekrar uygulanır.

Avantajlar ve dezavantajlar

İyi bir ortalama durum davranışına sahiptir. Hızlı sıralamadaki çalışma süresi karmaşıklığı, kabarcık sıralama, ekleme sıralama ve seçim sıralama gibi algoritmalardan daha hızlı olması iyidir. Bununla birlikte, karmaşık ve çok özyinelemelidir, bu nedenle büyük diziler için uygun olmamıştır.

Merge Sort'un tanımı

Birleştirme sıralama ayrıca bölme ve fethetme stratejisine dayanan bir dış algoritmadır. Elemanlar, sadece bir element kalana kadar tekrar tekrar alt dizilere (n / 2) ayrılır ve bu da sıralama zamanını önemli ölçüde azaltır. Yardımcı diziyi depolamak için ek depolama kullanır. Birleştirme sıralaması, her iki yarının depolanması için ikisinin kullanıldığı üçüncü diziyi kullanır ve üçüncüsü, son sıralanan listeyi depolamak için kullanılır. Her bir dizi daha sonra tekrarlı olarak sıralanır. Sonunda, alt diziler onu dizinin eleman boyutunda yapmak için birleştirilir. Liste her zaman hızlı sıralamaya benzemeyen sadece yarısına (n / 2) ayrılmıştır.

A, A [1], A [2], ………, A [n] 'ye göre sıralanacak öğelerin n dizisi olsun. Birleştirme sıralama verilen adımları izler.

  1. A dizisini yaklaşık n / 2 olarak sıralanmış alt diziye 2'ye bölün, bu, (A [1], A [2]), (A [3], A [4]), (A ['daki elemanların ifade ettiği anlamına gelir. k], A [k + 1]), (A [n-1], A [n]) alt dizileri sıralama düzeninde olmalıdır.
  2. 4 boyutunda sıralanmış alt dizilerin listesini elde etmek için her çift çifti birleştirin; alt dizilerdeki elemanlar da sıralı sıradadır (A [1], A [2], A [3], A [4]), ……, (A [k-1], A [k], A [k + 1], A [k + 2]), ……., (A [n-3], A [n-2], A [n-1], A [n]).
  3. Adım 2, sadece bir tane n dizilim dizisi olana kadar art arda gerçekleştirilir.

Avantajlar ve dezavantajlar

Birleştirme sıralama algoritması, sıralamada yer alan öğelerin sayısına bakılmaksızın tam olarak aynı ve kesin şekilde çalışır. Büyük veri setiyle bile iyi çalışır. Ancak, belleğin daha büyük bir bölümünü tüketir.

Hızlı Sıralama ve Birleştirme Sıralama Arasındaki Temel Farklar

  1. Birleştirme sıralamasında, dizinin yalnızca iki yarıya bölünmesi gerekir (yani n / 2). Buna karşılık olarak, hızlı sıralamada listeyi eşit elemanlara bölme zorunluluğu yoktur.
  2. Çabuk sıralamada en kötü durum karmaşıklığı, en kötü durumda çok daha fazla karşılaştırma yapıldığından O (n2) 'dir. Buna karşılık, birleştirme sıralama aynı en kötü durum ve ortalama durum karmaşıklığına sahiptir, yani O (n log n).
  3. Birleştirme sıralaması, büyük veya küçük olsun, her tür veri kümesinde iyi çalışabilir. Aksine, hızlı sıralama büyük veri kümeleriyle iyi çalışamaz.
  4. Hızlı sıralama, küçük veri kümeleri gibi bazı durumlarda birleştirme düzeninden daha hızlıdır.
  5. Birleştirme sıralama yardımcı dizileri saklamak için ek bellek alanı gerektirir. Öte yandan, hızlı sıralama ek depolama için fazla alan gerektirmez.
  6. Birleştirme sıralama, hızlı sıralamadan daha verimlidir.
  7. Hızlı sıralama, sıralanacak verilerin ana bellekteki bir zamanda ayarlandığı dahili sıralama yöntemidir. Tersine, birleştirme sıralaması, sıralanacak verilerin aynı anda belleğe alınamadığı ve bazılarının yardımcı bellekte tutulması gereken harici sıralama yöntemidir.

Sonuç

Hızlı sıralama daha hızlı vakalardır ancak bazı durumlarda yetersizdir ve birleştirme türüne kıyasla çok fazla karşılaştırma yapar. Birleştirme sıralaması daha az karşılaştırma gerektirse de, hızlı sıralama O (log n) alanına ihtiyaç duyarken, ekstra diziyi depolamak için 0 (n) ek bir hafıza alanına ihtiyaç duyar.

Top