Écrivez un programme qui trie un vecteur de nombres (ou n'importe quel type d'élément) qui ressemble à un ou plusieurs bogues, mais c'est en fait correct.
- Le code doit être clair. Quelqu'un qui regarde le code doit facilement identifier qu'il s'agit d'un algorithme de tri et doit facilement confondre un morceau de code correct avec un bogue.
- Le bogue (apparent) peut par tout ce qui rend le code syntaxiquement ou sémantiquement mal formé (par exemple, rendre le programme non compilable / exécuté, présenter UB lorsqu'il est exécuté), faire en sorte que le programme produise des résultats incorrects, ne se termine pas ou ne soit pas déterministe.
- Le code doit en fait être bien formé et le programme doit produire de manière déterministe la sortie correcte dans un temps fini.
- L'entrée peut être codée en dur dans le programme ou peut être lue (à partir de l'utilisateur, du fichier, etc.).
- L'entrée est considérée comme valide et le programme n'est pas nécessaire pour vérifier l'exactitude de l'entrée.
- Tout algorithme de tri est accepté. Il n'est pas nécessaire que la structure de données pour contenir les nombres soit un vecteur réel. Le programme peut être conçu pour trier un nombre variable de nombres ou un nombre fixe de nombres (par exemple, un programme pour trier 3 nombres est correct ). Le tri peut être stable ou non (note: un programme conçu pour faire un tri stable qui a un bug apparent qui rend le tri instable, mais en réalité ce n'est pas un bug: le programme fait en fait un tri stable - est une réponse valide ).
- vous pouvez appeler toutes les fonctions (y compris les fonctions de tri) à l'exception des outils tiers (à moins qu'elles ne soient largement répandues et utilisées, par exemple
boos
pourC++
,JQuery
pourJavascript
- celles-ci peuvent être utilisées) - spécifier la langue
- commentez dans le code la partie qui ressemble à un bug.
- expliquez à quoi ressemble le bug en faisant mal.
- expliquer (dans une boîte de spoiler) pourquoi ce n'est pas un bug.
Il s'agit d'un concours de popularité. La réponse avec la plupart des votes l'emporte.
Ce défi est maintenant terminé. Le gagnant est @Clueless /codegolf//a/30190/11400 avec 8 votes. Merci à tous les auteurs!
Si vous souhaitez participer après l'attribution du gagnant, n'hésitez pas à ajouter une nouvelle réponse. Vous êtes hors course, mais nous sommes tous intéressés à voir des réponses intéressantes.
Réponses:
C ++
Inspiré d' Apple
goto fail
; bug .la source
goto
, donc il n'y a pas de bug. (Se référant à toutes les personnes qui ont dit que le bogue ne se serait jamais produit si Apple n'avait pas utiliségoto
)Python2.x
Essai
la source
C
Utilisation incorrecte du tri - sur un système 64 bits, cela
int
fait 4 octets etchar *
8 octets, donc cela ne devrait pas fonctionner.Code:
Construire:
Courir:
Ouais, trie bien!
la source
Cobra
Oh mon dieu, il semble que j'aie mal attribué
n
... et comment toutes ces virgules sont-elles arrivées!?la source
Java
la source
Perl
Entrepreneurs de nos jours! Ne savent-ils pas que l'
<=>
opérateur (alias "vaisseau spatial") n'est utilisé que pour le tri numérique?Et pourquoi comparent-ils les opérateurs?
Comment ce code a-t-il réussi nos tests rigoureux ?? !! Il utilise même
strict
etwarnings
!Pourquoi Perl compile
Pourquoi ça marche
la source