なぜバイナリサーチはバイナリサーチと呼ばれるのですか?


9

いくつかの考えられる説明を聞いたので、信頼できる参照をお願いします。

更新05.19:私の学生の1人が彼の論文で名前が以下の説明(1)から来ていると書いたので、私は質問に興味があります。今までは説明(2)から来ると思った/聞いた。私は彼の論文で間違ったことを許すことと、それが正しいかもしれないならそれを削除するように彼に言ったことの両方に気分が悪いでしょう。

(1)区間内の整数の検索を考えます。質問を使用して、ステップ番号の桁の2進数を尋ねることでそれを見つけることができます。N I I T H[0,2n1]niith

(2)要素のサーチスペースがある場合、スペースの残りの部分を2つに繰り返し分割する質問によって未知の要素を見つけることができます。2n

そして、はい、私は(2)が(1)と同じアルゴリズムを与えることができることを知っていますが、それはここでのポイントではありません。(2)は、より一般的な問題にも適用できます。


1
また、質問は参考文献を求めていることに注意してください。信頼できる情報源を提供することなく、このような理由によるものだと答えないでください。
デビッドリッチャービー、

1
@DavidRicherby、いや、好奇心は「信頼できる」参照を要求するための十分な動機ではありません。好奇心「バイナリ検索がバイナリ検索と呼ばれるのはなぜですか?」信頼できる情報源が必要です。」OPが複数の矛盾する説明に遭遇した場合、OPは質問でそれらについて説明する必要があります(Math.SEの質問が矛盾する説明につながらなかったことに注意してください)。
DW

3
私はあなたがあなたが持っているどんな説明をすることから始めるべきだと思います。彼らが得るべき信頼についての考えがあるかもしれません。また、独自に、できれば正確に、バイナリ検索と呼ばれるものを定義すると、同じ概念について話したり、そのような定義への参照を提供したりするのに役立つ場合があります。
バブー

2
Knuth TAoCPの第3巻、誰か?鉱山はオフィスにいます...
Hendrik Jan

回答:


1

説明(2)は良い説明です。

(2)は、特定の1つのインスタンスだけでなく、一般的にバイナリ検索のすべての用途に適用されるため、2つをよりよく説明しています。(1)はそれについて考える不合理な方法ではありません-(2)ほど一般的でも完全でもありません。

生徒にこの発言の修正を要求する義務を感じる必要はないと思います。学生が論文で説明(1)を言っても恥ずかしくないので、気分を悪くする必要はありません。しかし、何かを教えたい場合は、説明(2)と、バイナリ検索の方が一般的である理由、および「バイナリ検索」という名前が一般的なアルゴリズムにとっても妥当である理由を伝えることができます。しかし、それはマイナーなポイントであり、彼らが物事をそのままにしていたとしても私が問題を抱えたり、恥ずかしいと思ったりするものではありません。


参照なし!より歴史的な質問のように見えます:(
2015年

1

ウィキペディアによると、バイナリ検索は、並べ替えられた値の配列での検索に関係しています。

検索スペースを繰り返し分割することによる分割統治検索のより一般的な概念は、二分検索と呼ばれます(文字通り:「2つに割り込む」)。二分法の使用は、分割するものがあるため、他のコンテキストで検討される場合があります。これは実際、私が学んだ最初の表現です(高校では、それはずっと前のことだと思います)。これをバイナリと呼ぶこともできます。

Afaik、「二分論的」は、2つの部分が(ほぼ)等しいことを意味するものではありません。

2n

Dichotomicは明らかにより一般的な用語ですが、不適切にバイナリを使用する可能性のある人にとっては見慣れないように聞こえるかもしれません。

あなたの例(1)は奇妙に述べられています。なぜなら、意識的に2進数を要求するのではなく、間隔の中央値と比較するためです。しかし、それはバイナリーとしての資格があります。

Youeの例(2)は不明確です。2つに分割するだけをジコトミックと呼びます。さて、あなたは(奇妙なことに)2つの等しい部分を作る方法を仮定しているように見えるので、私にはわかりません。

しかし、人々が「はい」または「いいえ」で答えられる質問をする推測ゲームは、明らかに二分です。

私自身の推測、参考文献なし:

元々の表現はおそらく「二分」でしたが、バイナリシステムやバイナリコンピュータなどの人気により、「バイナリ」という用語がより一般的になりました。

重要な役割を果たした可能性のあるもう1つの要因は、二分探索(および二進法)が二分選択に基づいていることです。現在、「二項選択」という表現は存在しますが、Webで約6倍の頻度で表示される「バイナリ選択」よりもはるかに使用されていません。

これが影響している可能性があります。私たちは大部分が2進数に没頭していますが(つまり、私たちはコンピュータサイエンティストです)、ほとんどの人は2進数に関心がなく、関心もありませんが、バイナリの選択については簡単に話します。バイナリサーチはコンピュータサイエンティストのトピックであることは事実ですが、それとは逆に信頼できるリファレンスがなければ、バイナリサーチが直接的な方法であるとは思いません。


「Wikipediaによると、バイナリ検索は、並べ替えられた値の配列での検索に関係しています。」-まあ、それは私がウィキペディアを読む方法ではありません。ウィキペディアがバイナリ検索として数えるために配列内にある必要があると言った場合、ウィキペディアはこれについて議論の余地があると思いますが、ウィキペディアの記事にはそうは書いていないようです。さらに下のWikipediaの記事で、バイナリ検索は「関数が任意の値に到達する点について、任意の単調関数の引数を検索できるようにする」と述べています。これは配列内の検索ではありません。
DW

「検索スペースを繰り返し分割することによる分割統治検索のより一般的な概念は、二分検索と呼ばれます」 -これは、私自身の経験とは一致しません。私はこれをバイナリサーチと呼んでいます。
DW

@DW前に言ったように、私の記憶はあまり信用されていません。しかし、二分探索、あるいは分割統治すら、コンピュータに登場したアルゴリズム用語です。しかし、私が最初に二分法の検索を聞いたとき、周りには多くのコンピュータがなかったと思います。その場合、優れた印刷された参考文献は、私の(失敗した)記憶よりもはるかに優れています。ウィキペディアに関しては、私は記事全体を読みませんでした。基本的に、私は決定的な答えが得られるとは思いませんでした...そして、私はそれが何かあるのか疑問に思っています。アイデアは一般的で、用語は素晴らしく、手元にあるあらゆる問題にそれぞれが適応しているはずです。
バブー

1

Knuth(V.3 Pg。82)は、Mauchlyをバイナリ検索のソースとして提供しています。バイナリ挿入と呼ばれるプロセスで、ソート中に挿入ポイントを見つけて要素を前方にシャッフルして、空いている場所を作成するために使用されます。

したがって、(2)は有効ですが、元の論文が表示されません。ここでは隠れています:https : //books.google.com/books?id=A6EEAQAAIAAJ&focus=searchwithinvolume& q=sorting+and+ collat​​ing


1

私はKnuthが引用したMauchlyの参照を調べようとしましたが、私のライブラリはコピーを置き違えたようです。

それまでの間、「二分探索」のための次の初期の引用を検討してください。

  • ハルパーン、マーク。「バイナリサーチ機能を備えた可変幅テーブル。」ACM 1.2(1958)の通信:1-4。

    このレポートで説明するサブルーチンファミリは、さまざまな長さのエントリを含むテーブルを作成、検索、維持するように設計されていますが、パーティションによる検索、つまり「バイナリ」検索に適しています。

  • Nagler、H.「2つの内部分類方法の相対的効率の推定。」ACM 3.11(1960)の通信:618-620。

    このレポートは、IBM 705、モデルIおよびIIに関するものです。これは、従来の双方向マージである2つの内部ソート方法と、IBM CorporationのD. Mordyによるバイナリサーチの形式で必要なマシン時間の調査です。

  • ピーターセン、TL再入場車両合成プログラム。No. STL / TR-60-0000-09103(pdfリンク)。TRW SPACE TECHNOLOGY LABS LOS ANGELES CA、1960年。

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

1958年の最初の引用では「バイナリ」の前後に引用符がどのように使用されているかに注目しますが、1960年の3番目の引用までに、バイナリ検索の説明はありません。「パーティションで検索」するということは、説明2)がより近いことを示唆する傾向がありますが、さらなる検証が必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.