- 締切済み
2分探索 バイナリーサーチ?
初歩的な質問で恐縮ですが、どうぞよろしくお願いします。 2分探索 バイナリーサーチで、登録件数5000件のデータからある数値を探索する場合、平均探索回数をXとした場合 2(X:べき乗)<=5000<2(13:べき乗) となり、最大検索回数が13回、平均探索回数が12回となることなのですが??? これはどのように解法すればよいのでしょうか
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ChateauAres
- ベストアンサー率43% (64/148)
回答No.2
真面目に計算するまでもなく、2の10乗が1024であることから、2の11乗が2048、12乗が4096・・・故に最大検索回数13回は暗算ですぐ計算できますよ。 情報処理の世界では2の16乗までは普通に暗記している人も多いです。
- ChateauAres
- ベストアンサー率43% (64/148)
回答No.1
平均比較回数の公式は log2n -1回なので、 log2 5000=Log 5000/Log 2=3.69897/0.30103=12.28 よって 12.28-1=11.28回になり、小数点以下を切り上げて12回になります。 Log 5000の計算はウィンドウズの電卓を関数電卓モードにすれば、 5000 の後に log ボタンを押すと計算できますよ。
質問者
補足
ChateauAresさん こんにちは 早速のご回答ありがとうございます。 とても嬉しいです。 それで、電卓で計算できるのはわかるのですが、 これが電卓使用不可、手計算しかも短時間で算出したいのですが・・・いかがなものでしょう
お礼
ChateauAresさま そうですね。 私の場合、真面目というか頭の回転が鈍いのかもしれません。 そのように考えるというか、要領よく、ポイントを考え展開していけばいいのですね。 ありがとうがざいました。