Qual è il codice più stupido mai fatto che è diventato famoso?
Questo codice sarebbe worstsort. Questo pezzo di codice non è ancora famoso, dato che è stato inventato solo nel 2012, ma è incredibilmente e brillantemente stupido.
Si tratta di un nuovo algoritmo di ordinamento; si chiama badsort.
Per eseguire badsort su tre numeri, 3, 2 e 1, si inizia generando tutte le permutazioni di quei numeri.
[math][( 3, 1, 2) (3, 2, 1) (2, 1, 3) (2, 3, 1) (1, 2, 3) ( 1, 3, 2 )][/math]
Sei permutazioni. Ora, ordinate queste sei permutazioni usando il buon vecchio bubblesort. Avete sei elementi, quindi confrontate ogni elemento della lista confrontando ogni elemento di ogni elemento di ogni lista.
Dopo il bubblesort, la permutazione in cima alla lista è il risultato ordinato [math] (1, 2, 3)[/math], quindi restituitelo.
Congratulazioni. Hai ordinato la lista originale in [math]O((n!)^2)[/math]tempo.
Ma aspetta. Cosa succede se non usate bubblesort nel mezzo di badsort? E se si usa badsort stesso, e poi si usa bubblesort dopo aver fatto badsort ricorsivamente due volte?
Se si usa badsort all'interno di badsort e poi bubblesort, la schifezza dell'ordinamento è ora [math]O(((n!)!)^2).[/math]
Ovviamente a questo punto state ordinando liste di liste, ma sapete come farlo.
Utilizzando questo metodo, potete ricorsivamente badsort quanto volete, per rendere l'ordinamento lento quanto volete, [math]O((((.....((((((((n!)!)!)!)!......!)^2).[/math]
E questo è worstsort. Ricercate quante volte volete su badsort e fate un bubblesort alla fine. Questo algoritmo è molto, molto peggiore di qualsiasi altro ordinamento conosciuto per un gran numero di ricorsi. Ma è ancora garantito, alla fine, per ordinare le liste.
Non c'è un limite calcolabile all'inefficienza di worstsort. Si può ordinare fino alla morte termica dell'universo, poi iniziare un nuovo universo per continuare il worstsort, e poi aspettare che quell'universo muoia di morte termica, e continuare con qualsiasi numero finito di universi.
Ma se avete scelto una ricorsione sufficientemente profonda, sarete ancora in attesa di worstsort, che ha la garanzia di finire l'ordinamento in qualche universo più avanti.
Inoltre, finirete lo spazio nell'universo per memorizzare tutte quelle permutazioni di permutazioni, quindi assicuratevi di prendere alcuni universi paralleli per la memorizzazione esterna.
Questo'è worstsort. Prende a calci in culo bogosort, sleepsort e persino bogobogosort in termini di terribilità.
EDIT: Quando ho scritto questa risposta, worstsort non era famoso. Quindi non soddisfaceva l'ultima parte della domanda. Tuttavia, questa risposta ora ha più di 400K visualizzazioni e 8K upvotes. Quindi ora worstsort è diventato famoso! Worstsort è riuscito ad andare indietro nel tempo per soddisfare retroattivamente la domanda. Tale è il terribile potere di worstsort.
Articoli simili
- Quali sono le differenze tra codice macchina, codice byte, codice oggetto e codice sorgente?
- Come è diventato famoso Joe Rogan?
- Qual è la differenza tra bytecode, codice nativo, codice macchina e codice assembly?
- Il mio Samsung Galaxy S4 ha un codice paese XSB. Posso aggiornare manualmente il sistema operativo con un diverso codice paese, codice prodotto e CSC?