İstenilen tüm özelliklere sahip sıralama algoritması yok mu?


22

On Sıralama Algoritmaları web aşağıdaki iddia yapılır:

İdeal sıralama algoritması aşağıdaki özelliklere sahip olacaktır:

  • Kararlı: Eşit anahtarlar yeniden sıralanmaz.
  • fazladan alan gerektiren, yerinde çalışır .O(1)
  • En kötü durumda anahtar karşılaştırmaları.O(nlg(n))
  • En kötü durumda değişiyor.O(n)
  • Uyarlanabilir: Veriler neredeyse sıralandığında ya da çok az benzersiz tuş bulunduğunda, hızını arttırır .O(n)

Bu özelliklerin hepsine sahip bir algoritma yoktur ve bu nedenle sıralama algoritması seçimi uygulamaya bağlıdır.

Benim sorum şu, bu doğru mu?

tüm bu özelliklere sahip hiçbir [sıralama] algoritması yok

ve eğer öyleyse, neden? Hepsini aynı anda gerçekleştirmeyi imkansız kılan bu özelliklerle ilgili nedir?


4
Muhtemelen sadece bilinen bir sıralama algoritmasının tüm bu özelliklere sahip olmadığı anlamına gelir .
Yuval Filmus

3
Karşılaştırma tabanlı bir sıralama toplantısı 3 ve 4 bile var mı?
greybeard

4
@JohnFeminella En az ihtiyacı karşılaştırmalar , ama nasıl olduğunu bize takası sayısı hakkında bir şey söyler? Ω(nlog(n))
Tom van der Zanden, 19:15

2
@ JohnFeminella Nitpick: " ' dan daha iyi " boş bir ifadedir. Alt sınırlar hakkında konuşmak istiyorsanız Ω veya Θ kullanmalısınız . O(_)ΩΘ
Raphael

1
Herhangi bir sıralama algoritması, orijinal eleman konumuna ikincil anahtar olarak eklenerek kararlı hale getirilebilir. Ancak bu, O (n) ekstra bellek alacağı şekilde yerinde olmamasını sağlar.
Giovanni Botta

Yanıtlar:


6

WikiSort ve GrailSort , yerinde, istikrarlı, en kötü durum anahtar karşılaştırmalarını yapan oldukça yeni iki algoritmadır . Ne yazık ki, O ( n ) takaslarına yaklaşıp yaklaşmadıklarını veya uyarlanabilir olduklarını bilecek kadar iyi anlamıyorum, bu yüzden sahip olduğunuz dördüncü ve beşinci koşulları ihlal edip etmediklerini bilmiyorum.O(n lg(n))O(n)

Kağıt bakarak Pok-Oğul Kim ve Arne Kutzner tarafından, "Oran bazlı kararlı yerinde birleştirilmesi" WikiSort GitHub sayfa tarafından bağlanan, Kim ve Kutzner iddiası bir 'birleştirme' ameliyat olmak (WikiSort, Mergesort'un bir değişkenidir), ancak bunun WikiSort ileO(n)değiş tokuşuna sahip olup olmadığından emin değilim. GrailSort'un daha hızlı olduğu iddia ediliyor (WikiSort GitHub sayfasında) bu yüzden her ikisinin de en kötü durumdaO(n)swap'ları olduğunu ve uyarlanabilirolduklarını hayal edebiliyorum.O(m(nm+1))O(n)O(n)

Herhangi biri WikiSort ve / veya GrailSort'u anlamayı başaramazsa, bu konudaki açık soruma cevap vermelerini çok isterim



3

Bilinen hiçbir algoritma bu özelliklerin hepsini karşılamamaktadır. Daha fazla sıralama algoritması geliştirdikçe, bu özellikler aranmaya başlandı. Örneğin, kabarcık sıralama (muhtemelen en ilkel sıralama algoritması), ilk uygulamada büyük olasılıkla kararsızdı, ancak bilgisayar bilimcileri daha sonraki uygulamalarda daha verimli hale getirmek istediklerinde kararlı olacak şekilde tasarlandı. Böylece, bilgisayar bilimcileri büyük olasılıkla en iyi algoritmalardan en iyi özellikleri seçtiler ve sonuç olarak, bu istenen özelliklerin bir listesini getirdiniz. Gerçekte, bir şeyde tüm dünyanın en iyisine sahip olmak zordur. İmkansız değil, fakat şu andaki mimarimiz ile imkansız.

OΩΘ


1
Hoşgeldiniz! Bu güzel ama istikrarın verimlilikle ne yapması gerektiğini görmüyorum: listenin aynı anahtarlara sahip bölümlerinin algoritmanın izin verdiği "rastgele" olmaması gerektiği bir tercih.
David Richerby

Evet, fakat bu kesinlikle mümkün veya imkansız mı?
James Faulcon

1

(Bu eski bir soru olmasına rağmen, bunun üzerine tökezledim ve diğerleri de olabilir.)

Gerçekten de (1) - (4) ve (5) in ikinci yarısını karşılayan bir algoritma vardır, bu yüzden yukarıdaki gereksinime çok yaklaşır. [1] 'de açıklanmıştır ve son on yılda icat edilen birkaç numarayı birleştirmektedir.

[1]: Franceschini, G. Theory Comput Syst (2007) 40: 327. https://doi.org/10.1007/s00224-006-1311-1

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.