Warum heißt binäre Suche binäre Suche?


9

Ich habe mehrere mögliche Erklärungen gehört, daher hätte ich gerne eine vertrauenswürdige Referenz.

Update 05.19: Ich bin an der Frage interessiert, weil einer meiner Studenten in seiner Diplomarbeit geschrieben hat, dass der Name aus der folgenden Erklärung stammt (1). Bis jetzt habe ich gedacht / gehört, dass es aus der Erklärung kommt (2). Ich würde mich schlecht fühlen, wenn ich das Falsche in seiner These zulassen würde und ihm sagen würde, er solle es entfernen, wenn es richtig wäre.

(1) Betrachten Sie die Suche nach einer ganzen Zahl im Intervall . Wir können es anhand von n Fragen finden, indem wir in Schritt i die i t h Binärziffer der Zahl fragen .[0,2n1]niith

(2) Wenn wir einen Suchraum mit Elementen haben, können wir ein unbekanntes Element durch Fragen finden, die den verbleibenden Teil des Raums wiederholt in zwei Teile teilen .2n

Und ja, ich weiß, dass (2) den gleichen Algorithmus wie (1) geben kann, aber das ist hier nicht der Punkt. (2) kann auch für allgemeinere Probleme angewendet werden.


1
Bitte beachten Sie auch, dass in der Frage nach Referenzen gefragt wird. Bitte antworten Sie nicht und sagen Sie, dass dies aus dem einen oder anderen Grund geschieht, ohne eine zuverlässige Quelle anzugeben.
David Richerby

1
@ DavidRicherby, Nein, Neugier ist keine ausreichende Motivation, um eine "vertrauenswürdige" Referenz zu fordern. Neugier wäre eine ausreichende Motivation für die Frage "Warum heißt binäre Suche binäre Suche?", Aber es ist kein ausreichender Grund, eine Referenz / zuverlässige Quelle zu fordern, und es ist kein ausreichender Grund zu sagen: "Antworte nicht mit einer Erklärung; ich nur." will zuverlässige Quellen ". Wenn das OP auf mehrere widersprüchliche Erklärungen gestoßen ist, sollte das OP uns dies in der Frage mitteilen (beachten Sie, dass die Math.SE-Frage nicht zu widersprüchlichen Erklärungen geführt hat).
DW

3
Ich denke, Sie sollten damit beginnen, welche Erklärungen Sie haben. Wir könnten eine Vorstellung davon haben, welches Vertrauen sie bekommen sollten. Und es könnte hilfreich sein, wenn Sie Ihre eigene, vorzugsweise genaue Definition dessen geben, was Sie als binäre Suche bezeichnen, damit wir sicher sein können, von demselben Konzept zu sprechen, oder alternativ einen Verweis auf eine solche Definition geben.
Babou

2
Band 3 von Knuth TAoCP, jemand? Meins ist im Büro ...
Hendrik

Antworten:


1

Erklärung (2) ist eine gute Erklärung.

(2) ist die bessere Erklärung der beiden, da sie allgemein für alle Verwendungen der binären Suche gilt, nicht nur für eine bestimmte Instanz. (1) ist keine unvernünftige Art, darüber nachzudenken - es ist einfach nicht so allgemein oder vollständig wie (2).

Ich glaube nicht, dass Sie sich verpflichtet fühlen müssen, vom Schüler die Korrektur dieser Aussage zu verlangen. Es wäre nicht peinlich, wenn ein Student in seiner Arbeit eine Erklärung (1) geben würde, damit Sie sich nicht schlecht fühlen müssen. Wenn Sie ihnen jedoch etwas beibringen möchten, können Sie ihnen die Erklärung (2) erläutern und erläutern, wie die binäre Suche allgemeiner ist und warum der Name "binäre Suche" auch für den allgemeinen Algorithmus angemessen ist. Aber es ist ein kleiner Punkt und nichts, was ich als problematisch oder peinlich ansehen würde, wenn sie die Dinge so lassen würden, wie sie sind.


keine refs! scheint eher eine historische Frage zu sein :(
vzn

1

Laut Wikipedia betrifft die binäre Suche die Suche in einem Array sortierter Werte.

Das allgemeinere Konzept der Teilung und Eroberung der Suche durch wiederholtes Aufteilen des Suchraums wird als dichotomische Suche bezeichnet (wörtlich: "das schneidet in zwei Teile "). Die Verwendung der Dichotomie kann in anderen Kontexten in Betracht gezogen werden, so wie Sie etwas zu spalten haben. Es ist tatsächlich der erste Ausdruck, den ich gelernt habe (in der High School, glaube ich, und das war vor langer Zeit), auch in Fällen, in denen Sie ihn vielleicht als binär bezeichnen möchten.

Afaik, "dichotomisch" bedeutet nicht, dass die beiden Teile (fast) gleich sind.

2n

Dichotomisch ist eindeutig der allgemeinere Begriff, aber es mag für einige pedantisch klingen, die stattdessen möglicherweise binär falsch verwenden.

Ihr Beispiel (1) ist seltsamerweise angegeben, da man nicht bewusst nach Binärziffern fragt, sondern nach einem Vergleich mit dem Median eines Intervalls. Aber es könnte sich als binär qualifizieren.

Ihr Beispiel (2) ist unklar. Nur in zwei Teile zu teilen, sollte als dichotomisch bezeichnet werden. Nun, da Sie (seltsamerweise) eine Möglichkeit zu vermuten scheinen, zwei gleiche Teile herzustellen, bin ich mir nicht sicher.

Aber ein Ratespiel, bei dem Leute Fragen stellen, die mit Ja oder Nein beantwortet werden, ist eindeutig dichotomisch.

Meine eigene Vermutung, kein Hinweis gegeben:

Der ursprüngliche Ausdruck war wahrscheinlich "dichotomisch", aber mit der Popularität von Binärsystemen, Binärcomputern usw. wurde der Begriff "Binär" populärer.

Ein weiterer Faktor, der möglicherweise eine wichtige Rolle gespielt hat, ist, dass die binäre Suche (sowie die dichotomische Suche) auf binären Entscheidungen basiert. Jetzt existiert der Ausdruck " dichotome Wahl ", wird aber viel weniger verwendet als " binäre Wahl ", die im Web etwa sechsmal häufiger vorkommt.

Das könnte das also beeinflusst haben. Wir sollten uns daran erinnern, dass die meisten Menschen, obwohl wir weitgehend in Binärzahlen versunken sind (ich meine wir, Informatiker), sich nicht mit Binärzahlen befassen und sich auch nicht damit befassen, sondern leicht von einer Binärzahl sprechen werden. Es ist wahr, dass die binäre Suche ein Thema für Informatiker ist, aber ohne einen verlässlichen Hinweis auf das Gegenteil werde ich nicht glauben, dass es auf irgendeine direkte Weise von binären Zahlen stammt.


"Laut Wikipedia betrifft die binäre Suche die Suche in einem Array sortierter Werte." - So lese ich Wikipedia nicht. Wenn Wikipedia sagt, dass es sich in einem Array befinden muss, um als binäre Suche gut zu gelten, dann ist Wikipedia meiner Meinung nach umstritten - aber der Wikipedia-Artikel scheint das nicht zu sagen. Weiter unten im Wikipedia-Artikel heißt es, dass die binäre Suche "das Durchsuchen von Argumenten einer monotonen Funktion nach einem Punkt ermöglicht, an dem die Funktion den beliebigen Wert erreicht" - was nicht in einem Array gesucht wird.
DW

"Das allgemeinere Konzept der Teilung und Eroberung der Suche durch wiederholtes Aufteilen des Suchraums wird als dichotomische Suche bezeichnet" - Das entspricht nicht meiner eigenen Erfahrung. Ich höre dies routinemäßig als binäre Suche.
DW

@ DW Wie ich Ihnen bereits sagte, ist mein Gedächtnis nicht sehr vertrauenswürdig. Aber binäre Suche oder sogar Teilen und Erobern sind algorithmische Begriffe, die uns mit Computern einfielen. Aber ich denke, es gab nicht viele Computer, als ich zum ersten Mal von dichotomischer Suche hörte. Dann wäre eine gute gedruckte Referenz viel besser als mein (f) krankes Gedächtnis. In Bezug auf Wikipedia habe ich nicht den ganzen Artikel gelesen. Grundsätzlich hätte ich nicht gedacht, dass ich eine endgültige Antwort bekommen würde ... und ich habe einige Zweifel, dass es eine gibt. Die Idee ist allgemein, die Terminologie nett und muss von jedem an das jeweilige Problem angepasst worden sein.
Babou


1

Ich habe versucht, die von Knuth zitierte Mauchly-Referenz nachzuschlagen, aber meine Bibliothek scheint ihre Kopie verlegt zu haben.

Berücksichtigen Sie in der Zwischenzeit die folgenden frühen Zitate für "binäre Suche":

  • Halpern, Mark. " Tabellen mit variabler Breite und binärer Suchfunktion. " Mitteilungen des ACM 1.2 (1958): 1-4.

    Die in diesem Bericht beschriebene Familie von Unterprogrammen wurde entwickelt, um Tabellen zu erstellen, zu suchen und zu verwalten, die Einträge unterschiedlicher Länge enthalten und dennoch nach Partition oder "binärer" Suche durchsucht werden können.

  • Nagler, H. " Eine Schätzung der relativen Effizienz zweier interner Sortiermethoden. " Mitteilungen des ACM 3.11 (1960): 618-620.

    Dieser Bericht betrifft den IBM 705, Modelle I und II. Es handelt sich um eine Untersuchung der Maschinenzeit, die für zwei interne Sortiermethoden erforderlich ist, die herkömmliche bidirektionale Zusammenführung und eine Form der binären Suche, die D. Mordy von der IBM Corporation zu verdanken ist.

  • Petersen, TL PROGRAMM ZUR WIEDERAUFNAHME VON FAHRZEUGSYNTHESEN. STL / TR-60-0000-09103 (pdf-Link) . TRW SPACE TECHNOLOGY LABS LOS ANGELES CA, 1960.

    V0g(V0)=0g(0)=K31g(K1)=1V0K1K3>1g(V0)V0V00.01

Ich werde bemerken, wie das erste Zitat von 1958 Anführungszeichen um "binär" verwendet, aber beim dritten Zitat von 1960 wird eine binäre Suche ohne weitere Beschreibung oder Erklärung erwähnt. Die Anspielung auf "Suche nach Partition" würde eher darauf hindeuten, dass Erklärung 2) näher ist, aber eine weitere Überprüfung erforderlich ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.