「二分探索」の版間の差分

削除された内容 追加された内容
Riesz (会話 | 投稿記録)
言語間リンクを復旧 de, es, fi, fr, he, it, pt, ru, sk, uk
KENPEI (会話 | 投稿記録)
m編集の要約なし
20行目:
</table>
 
 
----
結果欄を設け、目的のデータがあるか否か不明な部分を「?」、データを調べた上で目的のデータが無いとわかった部分を「'''×'''」、データを調べたるまでもなく目的のデータが無い部分を「×」、目的のデータがあった部分を「○」にすることにする。検索前は、以下のようになる。
 
<table border="1" cellpadding="2" >
32行目:
</th><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><tr>
</table>
 
----
 
まず、配列の中央の位置を求めると、(1+10)/2=5 
:(端数は切捨、切上のどちらでもいいが、ここは切捨とする。以下同じ)
位置5のデータは12なので「'''×'''」、位置1~51~4まではデータを調べなくても「×」とわかる。目的のデータは位置6~10にあるかも知れない。
 
<table border="1" cellpadding="2" >
44 ⟶ 45行目:
 
<tr><th>結果
</th><td>×</td><td>×</td><td>×</td><td>×</td><td>'''×'''</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><td>&nbsp;?</td><tr>
</table>
 
----
 
位置6~10の中央の位置は、(6+10)/2=8
 
位置8のデータは22なので「'''×'''」、位置1~86~7までは「×」とわかる。目的のデータは位置9~10にあるかも知れない。
 
<table border="1" cellpadding="2" >
58 ⟶ 60行目:
 
<tr><th>結果
</th><td>×</td><td>×</td><td>×</td><td>×</td><td>'''×'''</td><td>×</td><td>×</td><td>'''×'''</td><td>&nbsp;?</td><td>&nbsp;?</td><tr>
</table>
 
 
----
位置9~10の中央の位置は、(9+10)/2=9
 
73 ⟶ 75行目:
 
<tr><th>結果
</th><td>×</td><td>×</td><td>×</td><td>×</td><td>'''×'''</td><td>×</td><td>×</td><td>'''×'''</td><td>'''○'''</td><td>×</td><tr>
</table>