Mengapa Quicksort disebut "Quicksort"?

9

Inti dari pertanyaan ini adalah bukan untuk memperdebatkan kelebihan ini atas algoritma pengurutan lainnya - tentu saja ada banyak pertanyaan lain yang melakukan ini. Pertanyaan ini tentang nama. Mengapa Quicksort disebut "Quicksort"? Tentu, ini "cepat", sebagian besar waktu, tetapi tidak selalu. Kemungkinan degenerasi menjadi O (N ^ 2) sudah diketahui. Ada berbagai modifikasi untuk Quicksort yang mengurangi masalah ini, tetapi yang membawa kasus terburuk ke O dijamin (n log n) tidak secara umum disebut Quicksort lagi. (mis. Introsort).

Saya hanya ingin tahu mengapa dari semua algoritma penyortiran yang terkenal, ini adalah satu-satunya yang pantas untuk nama "cepat", yang menggambarkan bukan bagaimana cara kerjanya, tetapi seberapa cepat (biasanya). Mergesort disebut demikian karena menggabungkan data. Heapsort disebut itu karena menggunakan heap. Introsort mendapatkan namanya dari "Introspektif", karena memantau kinerjanya sendiri untuk memutuskan kapan harus beralih dari Quicksort ke Heapsort. Demikian pula untuk semua yang lebih lambat - Bubblesort, Jenis penyisipan, Jenis pilihan, dll. Mereka semua diberi nama untuk cara kerjanya. Satu-satunya pengecualian lain yang bisa saya pikirkan adalah "Bogosort", yang sebenarnya hanya lelucon yang tidak pernah benar-benar digunakan oleh siapa pun dalam praktik. Mengapa Quicksort tidak menyebut sesuatu yang lebih deskriptif, seperti "Urut partisi" atau "Urut pivot", yang menggambarkan apa yang sebenarnya dilakukannya? Ini bahkan bukan kasus "sampai di sini dulu". Mergesort dikembangkan 15 tahun sebelum Quicksort. (1945 dan 1960 masing-masing menurut Wikipedia)

Saya kira ini lebih merupakan pertanyaan sejarah daripada pertanyaan pemrograman. Saya hanya ingin tahu bagaimana ia mendapatkan nama - apakah itu pemasaran yang bagus?

Darrel Hoffman
sumber
1
Timsort, yang ditingkatkan quicksort, tidak mengambil nama setelah cara kerjanya, melainkan dari penemunya. Nama-nama seperti flashsort atau introsort juga tidak memberi tahu Anda banyak tentang algoritma.
vartec
What's in a name? that which we call a rose By any other name would smell as sweet;Itu atau secepatnya. Selain itu, kemungkinan degenerasi menjadi O (N ^ 2) memiliki peluang kecil terjadi, dan N LogN cukup baik untuk suatu algoritma, meskipun pada kenyataannya kita memiliki algoritma yang lebih cepat saat ini. Selain itu, pada saat sesuatu yang lebih cepat muncul, semuanya sudah terlambat, semua orang sudah menyebutnya Quicksort!
Ampt
1
@vartec Timsort sebenarnya berasal dari Mergesort, bukan Quicksort, tapi saya akan setuju, itu pengecualian lain. Introsort tidak memberi Anda keseluruhan algoritme, tetapi setidaknya menjelaskan sesuatu tentang cara kerjanya - ini "introspektif". Flashsort Saya tidak begitu akrab dengan, tapi saya kira itu disebut itu karena "berkedip" setiap elemen ke tebakan terbaik di mana seharusnya?
Darrel Hoffman
1
@Ampt Sebenarnya, dalam bentuk Quicksort yang paling dasar, kasus O (N ^ 2) sangat mungkin dalam kasus umum di mana data sudah diurutkan atau hampir seperti itu. Diakui, perkembangan selanjutnya seperti Median-of-3 atau pivot acak membuatnya jauh lebih langka, tetapi nama tersebut masih digunakan untuk implementasi yang tidak memiliki perbaikan seperti itu.
Darrel Hoffman
Ternyata, ini lebih baik daripada yang tercepat?
JeffO

Jawaban:

13

Pada tahun 1962, penelitian tentang algoritma pengurutan tidak semaju sekarang dan ilmuwan komputer Tony Hoare menemukan algoritma baru yang lebih cepat daripada yang lain sehingga ia menerbitkan makalah yang disebut Quicksort dan ketika makalah itu dikutip, judulnya tetap.

Mengutip abstrak:

Deskripsi diberikan tentang metode baru penyortiran di toko akses-acak komputer. Metode ini sangat menguntungkan dibandingkan dengan metode lain yang dikenal dalam kecepatan, penghematan penyimpanan, dan kemudahan pemrograman. Perbaikan tertentu dari metode ini, yang mungkin berguna dalam optimalisasi loop batin, dijelaskan di bagian kedua makalah ini.

johannes
sumber
Catatan kaki pada halaman 11 dalam PDF tertaut menunjukkan ada makalah sebelumnya di Quicksort yang diterbitkan pada tahun 1961. Makalah itu juga disebutkan di bagian Referensi di bagian akhir makalah.
FrustratedWithFormsDesigner
1961, Algorythm 64: Quicksort
Pieter B
Saya kira ini sedekat dengan jawaban yang benar karena saya cenderung mendapatkan. Ini menjelaskan siapa yang menamainya, tetapi tidak mengapa masih menggunakan nama itu, ketika ada alternatif yang lebih baru dan berpotensi lebih cepat. Bacaan yang bagus - menarik untuk melihat berapa banyak barang dari tahun 60an yang masih berlaku untuk teknologi modern.
Darrel Hoffman
3
@DarrelHoffman Mengapa namanya berubah? Pada titik apa kelemahan memanggil algoritma Quicksort lebih besar daripada biaya untuk membuat semua orang menyebutnya PartitionSort atau apa pun?
prosfilaes
0

Saya percaya bahwa itu awalnya disebut Hoare Sort setelah penemu tetapi namanya berubah cukup awal karena Hoare terdengar sedikit dekat dengan pelacur dalam bahasa Inggris. Mengenai mengapa mereka memilih "cepat" daripada yang lain, saya tidak yakin.

Evicatos
sumber
-1

Saya percaya itu karena, pada saat ditemukan, itu jauh lebih cepat daripada semua (atau, lebih tepatnya, sebagian besar, karena kecepatan juga sangat tergantung pada jenis data dan dalam beberapa kasus algoritma lain menjadi jauh lebih cepat daripada quicksort) dari algoritma di luar sana.

Jadi ya, ini historis (saya tidak tahu persis sejarah itu, bagaimanapun ...)

Tapi saya setuju bahwa namanya seharusnya berisi petunjuk tentang algoritma ...

Olivier Dulac
sumber