Penyortiran patologis
Bos Anda menuntut Anda mengembangkan algoritma penyortiran untuk meningkatkan kinerja aplikasi perusahaan Anda. Namun, setelah menulis aplikasi, Anda tahu bahwa Anda tidak mungkin membuatnya lebih cepat secara signifikan. Tidak ingin mengecewakan bos Anda, Anda telah memutuskan untuk mengembangkan algoritma baru yang bekerja lebih baik daripada * mengurutkan pada set data tertentu. Tentu saja, Anda tidak dapat membuatnya jelas bahwa algoritme hanya berfungsi pada beberapa kasus, jadi Anda ingin membuatnya tidak jelas.
Tujuan dari kontes ini adalah untuk menulis rutin penyortiran dalam bahasa pilihan Anda yang berkinerja lebih baik pada set data tertentu daripada yang lain, dengan hasil yang berulang. Semakin spesifik klasifikasi yang menentukan kecepatan, semakin baik. Algoritme harus melakukan semacam penyortiran, sehingga suatu algoritma yang bergantung pada data yang sudah sepenuhnya diurutkan (seperti dalam, suatu algoritma yang tidak melakukan apa-apa), atau suatu algoritma yang tergantung pada data yang sepenuhnya diurutkan secara terbalik, keduanya tidak valid. Algoritma pengurutan harus dengan benar mengurutkan setiap set data.
Setelah mempresentasikan rutinitas Anda, harap sertakan penjelasan mengapa itu hanya bekerja pada set data tertentu, dan sertakan uji coba pada setidaknya satu set data baik (cepat) dan satu set data buruk (lambat). Intinya di sini adalah untuk dapat membuktikan kepada atasan Anda bahwa Anda telah menemukan cara yang lebih baik untuk menyortir, sehingga lebih banyak data uji lebih baik. Tentu saja, Anda hanya akan menunjukkan kepada bos Anda hasil tes dari data yang baik, sehingga kesalahan dalam data pengujian yang diperlukan tidak terlalu jelas. Jika berlaku untuk bahasa Anda, harap tunjukkan bahwa algoritme Anda lebih cepat daripada algoritme penyortiran bawaan bahasa Anda.
Sebagai contoh, seseorang dapat mengirimkan algoritma penyisipan, dengan data yang baik adalah data yang sudah hampir diurutkan, dan data yang buruk menjadi data yang benar-benar acak, karena pendekatan penyisipan mendekati O (n) pada data yang hampir diurutkan. Namun, ini tidak terlalu baik, karena bos saya mungkin akan memperhatikan bahwa semua data pengujian hampir diurutkan sejak awal.
Ini adalah kontes popularitas , jadi jawabannya dengan suara terbanyak setelah 7 hari (21 Mei) menang.
Jika tidak ada yang mengalahkan saya, saya ingin mengirimkan jawaban wiki komunitas yang memanfaatkan kumpulan data yang terdistribusi secara seragam.