Bir listedeki öğeleri sıralamak sıradan bir iştir ve genellikle zaman alıcıdır. Sıralama terimi genellikle bir listedeki öğelerin önceden belirlenmiş bir sipariş ilişkisine göre artan veya azalan düzende düzenlenmesini ifade eder. Sıralama genellikle veri işlemede bir başka temel faaliyeti olan arama için tasarlanmıştır. İçindeki kelimeler düzenlenmemiş veya sıralanmamışsa sözlükte bir kelimeyi aramanın ne kadar zor olacağını düşünün. Sözlükteki girişlerin standart alfabetik sırada tutulmasının nedeni budur. Çok sayıda görev ve hesaplama basitçe sıralama yoluyla zahmetsiz hale gelir. İşte burada sıralama algoritmaları ortaya çıkıyor.
Sıralama algoritması, bir listenin öğelerini en düşükten en yükseğe değer, en yüksekten en düşüğe değer, artan düzen, azalan düzen, alfabetik vb. Gibi belirli bir düzende düzenleme yönteminden başka bir şey değildir. sayısal ve sözlükbilimsel düzendir. Algoritmalar sıralamayı genellikle anahtar altyordam olarak kullanır. Her biri zengin teknikler kullanan çok çeşitli sıralama algoritmaları vardır. Bu kadar popüler ama aynı derecede güçlü bir algoritma, çok dallı özyinelemeye dayanan bir algoritma olan Divide and Conquer algoritmasıdır. Hızlı Sıralama ve Birleştirme Sıralama, Divide ve Conquer algoritmasına dayanan yaygın olarak kullanılan iki algoritmadır.
Hızlı Sıralama, bir sorunun iki veya daha fazla alt soruna ayrıldığı ve daha sonra özyinelemeli olarak çözüldüğü dinamik yaklaşıma oldukça benzeyen bölme ve fethetme yaklaşımına dayanan oldukça etkili ancak etkili bir sıralama algoritmasıdır. Alt problemlerin boyutu yeterince küçükse, sorunsuz bir şekilde basit bir şekilde çözülürler. Bölüm-değişim sıralaması olarak da adlandırılan hızlı sıralama algoritması, sıralanacak listeyi üç ana bölüme ayırır: 1) Pivot öğesi (merkezi öğeler), 2) pivottan küçük öğeler ve 3) pivottan daha büyük öğeler. Pivotun kendisi iki grup arasında son konumuna taşınır ve QUICK SORT tekrar tekrar uygulanır..
Merge Sort, bölme ve fethetme tekniğine dayanan bir başka genel amaçlı sıralama algoritmasıdır. Bir dosyada harici olarak depolanan verileri sıralamak için verimli bir şekilde kullanılmak üzere tasarlanmış en saygın ve popüler sıralama algoritmalarından biridir. O (n) ekstra depolama alanı kullanırken en kötü durumda O (n log n) davranışı sunar. 'A' koleksiyonunu, her biri daha sonra sıralanan iki küçük koleksiyona böler. Son aşamada, bu iki sıralanmış koleksiyon n boyutunda tek bir koleksiyon halinde birleştirilir. Bu sıralı liste olacaktır. Algoritma oldukça hızlıdır ve aynı zamanda kararlı bir sıralamadır ve Bağlantılı Listeler için idealdir.
- Hem Hızlı Sıralama hem de Birleştirme Sıralama, aynı temel ilkeye sahip bölme ve fethetme tabanlı sıralama algoritmalarıdır - bir sorunu iki veya daha fazla alt soruna bölmek ve sonra tekrar tekrar çözmek. Ancak, birleştirme prosedürlerinde ve performans açısından farklılık gösterirler. Hızlı Sıralama genellikle küçük veri kümeleri söz konusu olduğunda Birleştirme Sıralaması da dahil olmak üzere diğer sıralama algoritmalarından daha iyi ve daha hızlıdır; Birleştirme Sıralaması ise veri kümelerinin türüne bakılmaksızın tutarlılığı korur. Hızlı Sıralama diziler için idealdir, Birleştir Sıralama ise Bağlantılı Listeler için idealdir.
- Hızlı Sıralama algoritmasındaki sıralama yinelemeli olarak yapılır ve her yinelemeli çağrı yığın yeri gerektirir. Birleştirme için tek bir bellek alanı dışında, birleştirme için fazladan alan gerektirmez. Yerinde bir sıralama algoritması olduğundan, sıralama yapmak için ek alan gerekmez. Aslında, diziyi bölerken ve birleştirirken aynı diziyi kullanır. Birleştirme Sıralamasında ise, bir dosyadaki veya bir dizideki verileri temsil etmenin birkaç yolu vardır, bu nedenle ek dosyalar gerektiren alt dosyalar veya aynı boyuttaki diziler gibi çalışma alanlarına ihtiyaç duyar..
- Hızlı Sıralama için en kötü durum davranışı bölümleme dengesiz olduğunda oluşur ve bu da bölümleme için hangi öğelerin kullanıldığına bağlıdır, bu durumda algoritma ekleme sıralaması kadar asimptotik olarak çalışır. Hızlı Sıralama'nın en kötü durum performansı O (n2) ve egzersiz olarak bırakılır. Ancak, doğru pivot seçilerek önlenebilir. Öte yandan, Merge Sort'un en kötü durumu maksimum sayıda karşılaştırma yapılması gerektiğinde ortaya çıkar. Birleştirme için doğrusal performans göz önüne alındığında, Birleştirme Sıralamasının en kötü durum performansı O (n günlüğü)2 n).
- Hızlı Sıralama ve Birleştirme Sıralama algoritmalarının her ikisi de sıralama için bölme ve fethetme yaklaşımını temel alsa da, bölme ve birleştirme yordamlarını gerçekleştirmek için kullanılan yöntemlere göre farklılık gösterir. Hızlı Sıralama için, işin büyük kısmı listeyi alt listeler sıralanmadan önce gerçekleşen iki alt listeye bölmektir. Birleştirme Sıralaması için, işin büyük bölümü alt listeler sıralandıktan sonra gerçekleşen iki alt listeyi birleştirmektir. Birleştirme Sıralaması iki alt diziyi birleştirmek için geçici bir dizi gerektirirken, Hızlı Sıralama için ek dizi alanı gerekmez, bu da onu Marge Sort'dan daha fazla alan verimli kılar.
Hem Hızlı Sıralama hem de Birleştirme Sıralama algoritmaları, sıralama için bölme ve fethetme yaklaşımını temel alır. Ancak, ayırma ve birleştirme prosedürlerini gerçekleştirmek için kullanılan yöntemlere göre farklılık gösterirler. Temelde aynı prensip üzerinde çalışırlar - bir problemi iki veya daha fazla alt probleme bölmek ve sonra tekrar tekrar çözmek. Birleştirme Sıralama en kötü durumda Hızlı Sıralamadan daha verimlidir, ancak ikisi ortalama durumda eşit derecede verimlidir. Ancak Hızlı Sıralama, Birleştirme Sıralamasından daha fazla yer tasarrufu sağlar. Bu nedenle Hızlı Sıralama şüphesiz Birleştir Sıralamasından daha hızlı ve daha iyidir, ancak karşılaştırmalar söz konusu olduğunda olduğu gibi birkaç durumda verimsiz hale gelir.