Quicksort'a neden "Quicksort" deniyor?


9

Bu sorunun amacı, bunun değerlerini başka bir sıralama algoritması üzerinde tartışmak değildir - kesinlikle bunu yapan birçok soru vardır. Bu soru isimle ilgili. Quicksort'a neden "Quicksort" deniyor? Tabii, çoğu zaman "hızlı", ama her zaman değil. O (N ^ 2) 'ye dejenere olma olasılığı iyi bilinmektedir. Quicksort'ta bu sorunu hafifleten çeşitli değişiklikler var, ancak en kötü durumu garantili bir O (n log n) değerine indirenlere genellikle Quicksort adı verilmiyor. (örneğin Introsort).

Sadece tüm iyi bilinen sıralama algoritmalarının nedenini merak ediyorum, bu algoritmanın nasıl çalıştığını değil (genellikle) ne kadar hızlı olduğunu açıklayan "hızlı" ismini hak eden tek kişi. Verileri birleştirdiği için Mergesort denir. Yığın buna bir yığın kullandığından denir. Introsort ismini "Introspective" den alıyor, çünkü Quicksort'tan Heapsort'a ne zaman geçileceğine karar vermek için kendi performansını izliyor. Benzer şekilde tüm yavaş olanlar için - Bubblesort, Ekleme sıralama, Seçim sıralama, vb. Hepsi nasıl çalıştıkları için adlandırılmıştır. Aklıma gelen tek istisna "Bogosort", ki bu aslında hiç kimsenin pratikte kullanmadığı bir şaka. Quicksort neden "Bölüm sıralama" veya "Pivot sıralama" gibi daha açıklayıcı bir şey olarak adlandırmıyor? gerçekte ne yaptığını açıklayan "Önce buraya geldim" bile. Mergesort, Quicksort'tan 15 yıl önce geliştirildi. (Wikipedia'ya göre sırasıyla 1945 ve 1960)

Sanırım bu bir programlama sorusundan çok bir tarih sorusudur. İsmini nasıl aldığını merak ediyorum - sadece iyi bir pazarlama mıydı?


1
Hızlı sıralama geliştiren Timsort, nasıl çalıştığından sonra değil, mucidinden isim alır. Flashsort veya introsort gibi isimler de algoritma hakkında fazla bir şey söylemez.
vartec

What's in a name? that which we call a rose By any other name would smell as sweet;Bu ya da hızlı olun. Ayrıca, O'ya (N ^ 2) dejenere olma olasılığı küçük bir olma şansına sahiptir ve N LogN, günümüzde daha hızlı algoritmalara sahip olmamıza rağmen, bir algoritma için oldukça iyidir. Ayrıca, daha hızlı bir şey ortaya çıktığında, çok geç oldu, herkes zaten Quicksort olarak adlandırdı!
Ampt

1
@vartec Timsort aslında Quicksort'tan değil, Mergesort'tan türetilmiştir, ama kabul edeceğim, bu başka bir istisna. Introsort size tüm algoritmayı vermez, ancak en azından nasıl çalıştığına dair bir şey açıklar - "introspektif" tir. Flashsort Çok aşina değilim, ama sanırım buna her elementin nerede olması gerektiği konusunda en iyi tahminine "yanıp söndüğü için" deniyor?
Darrel Hoffman

1
@Ampt Aslında, Quicksort'un en temel biçiminde, O (N ^ 2) durumu, verilerin zaten sıralandığı ya da neredeyse sıralandığı yaygın durumda oldukça olasıdır. Kuşkusuz, Medyan-3 veya rastgele pivot gibi daha sonraki gelişmeler onu çok daha nadir hale getirir, ancak bu tür iyileştirmeler olmayan uygulamalar için hala kullanılır.
Darrel Hoffman

Görünüşe göre, en hızlıdan daha mı iyi?
JeffO

Yanıtlar:


13

1962'de sıralama algoritmaları üzerine araştırma bugünkü kadar gelişmiş değildi ve bilgisayar bilimcisi Tony Hoare , diğerinden daha hızlı olan yeni bir algoritma buldu, böylece Quicksort adlı bir makale yayınladı ve makale alıntılanırken başlık kaldı.

Bildiri Özeti:

Bir bilgisayarın rasgele erişimli deposunda yeni bir sıralama yönteminin açıklaması verilmiştir. Yöntem, hız, depolama ekonomisi ve programlama kolaylığı gibi bilinen diğer yöntemlerle çok olumlu bir şekilde karşılaştırılır. İç döngülerin optimizasyonunda yararlı olabilecek yöntemin bazı iyileştirmeleri, makalenin ikinci bölümünde açıklanmaktadır.


Bağlantılı PDF'deki 11. sayfada yer alan dipnot, 1961'de Quicksort hakkında daha önce yayınlanmış bir makalenin mevcut olduğunu göstermektedir. Bu makale, makalenin sonundaki Referanslar bölümünde de belirtilmiştir.
SinirliWithFormsDesigner

1961, Algoritma 64: Quicksort
Pieter B

Sanırım bu doğru cevabı alacağım kadar yakın. Kimin adını verdiğini açıklıyor , ancak daha yeni ve potansiyel olarak daha hızlı alternatifler olduğunda neden hala bu adı kullandığını açıklamıyor. İyi okuma - 60'lı yıllarda arkadan ne kadar şeyin modern teknoloji için hala geçerli olduğunu görmek ilginç.
Darrel Hoffman

3
@DarrelHoffman İsim neden değişsin? Quicksort algoritmasını çağırmanın dezavantajları, herkesin bunu PartitionSort ya da her neyse aramasını sağlama maliyetinden daha ağır basar mı?
prosfilaes

0

Başlangıçta mucitten sonra Hoare Sort olarak adlandırıldığına inanıyorum, ancak Hoare'nin İngilizcede fahişeye biraz yakın gelmesi nedeniyle isim oldukça erken değişti. Neden başka bir şey yerine "hızlı" seçtiklerinden emin değilim.


-1

Çünkü icat edildiğinde, hepsinden çok daha hızlıydı (ya da daha çok, hız da büyük ölçüde veri türüne bağlı olduğu ve bazı durumlarda diğer algoritma hızlı sıralamadan çok daha hızlı hale geldiğinden) algoritmalar var.

Öyleyse evet, tarihsel (ancak tarihin tam olarak bilmiyorum ...)

Ancak, adının algoritmanın bir ipucu içermesi gerektiğini kabul ediyorum ...

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.