teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤字修正

2017/03/03 06:03

投稿

tacsheaven
tacsheaven

スコア13707

answer CHANGED
@@ -6,4 +6,5 @@
6
6
 
7
7
  n回: N/(2^n)
8
8
  となりますから、最悪でも 2^n >= N となる n までの回数で探索が完了(対象個数が1以下になる)します。これを数学的に表現すると、log2N となります。
9
- たとえば100万件あるデータ(それぞれユニーク)中から1つだけ探す場合、二分木探索なら比較回数はせいぜい20回です(2^20 = 1048576 > 1000000)。愚直に順番に見ると最悪100万回平均で50万回の比較発生することを考ると、勝負にならないことがお分かりいただけるかと思います。
9
+ 今回の場合、N=8 ですから、 log2 * 8 = 0.301 *8 = 2.408 なので、切り上げて 3 す。
10
+ ※平均試行回数でいうと切り上げずに 2.4 回がそのまま解になります