Schreiben Sie ein Programm, das einen Zahlenvektor (oder einen beliebigen Elementtyp) sortiert, der wie ein oder mehrere Bugs aussieht, aber eigentlich in Ordnung ist.
- Der Code muss klar sein. Jemand, der sich den Code ansieht, muss leicht erkennen, dass es sich um einen Sortieralgorithmus handelt, und muss leicht ein korrektes Stück Code mit einem Fehler verwechseln.
- Der (scheinbare) Fehler kann durch alles, was den Code syntaktisch oder semantisch falsch formuliert (z. B. das Programm nicht kompilieren / ausführen lassen, UB anzeigen, wenn es ausgeführt wird), dazu führen, dass das Programm falsche Ergebnisse erzeugt, nicht beendet oder nicht deterministisch ist.
- Der Code muss tatsächlich wohlgeformt sein und das Programm muss deterministisch die korrekte Ausgabe in einer endlichen Zeit erzeugen.
- Die Eingabe kann im Programm fest codiert oder gelesen werden (vom Benutzer, aus der Datei usw.).
- Die Eingabe wird als gültig betrachtet und das Programm wird nicht benötigt, um die Richtigkeit der Eingabe zu überprüfen.
- Jeder Sortieralgorithmus wird akzeptiert. Die Datenstruktur zum Halten der Zahlen muss kein tatsächlicher Vektor sein. Das Programm kann so gestaltet werden, dass eine variable Anzahl von Zahlen oder eine feste Anzahl von Zahlen sortiert wird (z. B. ist ein Programm zum Sortieren von 3 Zahlen in Ordnung ). Die Sortierung kann stabil sein oder nicht (Anmerkung: Ein Programm, das für die Ausführung einer stabilen Sortierung entwickelt wurde, hat einen offensichtlichen Fehler, der die Sortierung instabil erscheinen lässt, aber in Wirklichkeit ist es kein Fehler: Das Programm führt tatsächlich eine stabile Sortierung durch - ist eine gültige Antwort ).
- (einschließlich Sortierfunktionen) außer 3rd - Party - Tools können Sie alle Funktionen aufrufen (es sei denn , sie weiter verbreitete zB sind
boos
fürC++
,JQuery
fürJavascript
- das sind ok zu verwenden) - geben Sie die Sprache an
- Kommentieren Sie in Code den Teil, der wie ein Fehler aussieht.
- Erklären Sie, wie der Fehler aussieht, wenn Sie etwas falsch machen.
- erkläre (in einer Spoilerbox), warum es eigentlich kein Bug ist.
Dies ist ein Beliebtheitswettbewerb. Die Antwort mit den meisten Stimmen gewinnt.
Diese Herausforderung ist nun vorbei. Der Gewinner ist @Clueless /codegolf//a/30190/11400 mit 8 Stimmen. Vielen Dank an alle Einsender!
Wenn Sie nach der Vergabe des Gewinners teilnehmen möchten, können Sie gerne eine neue Antwort hinzufügen. Sie sind aus dem Rennen, aber wir sind alle daran interessiert, interessante Antworten zu sehen.