回答編集履歴
2
ややこしさ修正
answer
CHANGED
@@ -9,16 +9,16 @@
|
|
9
9
|
Right = 9
|
10
10
|
Left <= Right のため継続
|
11
11
|
Middle = (0 + 9) / 2 = 4
|
12
|
-
4
|
12
|
+
arr[4] = 5 < 9なのでLeft = 4 + 1 = 5
|
13
13
|
・2回目
|
14
14
|
Left = 5
|
15
15
|
Right = 9
|
16
16
|
Left <= Right のため継続
|
17
17
|
Middle = (5 + 9) / 2 = 7
|
18
|
-
7
|
18
|
+
arr[7] = 8 < 9なのでLeft = 7 + 1 = 8
|
19
19
|
・3回目
|
20
20
|
Left = 8
|
21
21
|
Right = 9
|
22
22
|
Left <= Right のため継続
|
23
23
|
Middle = (8 + 9) / 2 = 8
|
24
|
-
8
|
24
|
+
arr[8] = 9 = 9なので"Found!"
|
1
丁寧に追ってみる
answer
CHANGED
@@ -1,3 +1,24 @@
|
|
1
1
|
2回目でRightは8ではなく9です.
|
2
2
|
つまり,3回目はLeft = 8, Right = 9となり,
|
3
|
-
ifで(8 + 9) / 2 = 8となり,ここで目的の値である9が見つかります.
|
3
|
+
ifで(8 + 9) / 2 = 8となり,ここで目的の値である9が見つかります.
|
4
|
+
---
|
5
|
+
|
6
|
+
1回目から丁寧に追ってみると
|
7
|
+
・1回目
|
8
|
+
Left = 0
|
9
|
+
Right = 9
|
10
|
+
Left <= Right のため継続
|
11
|
+
Middle = (0 + 9) / 2 = 4
|
12
|
+
4にある値は5で,5 < 9なのでLeft = 4 + 1 = 5
|
13
|
+
・2回目
|
14
|
+
Left = 5
|
15
|
+
Right = 9
|
16
|
+
Left <= Right のため継続
|
17
|
+
Middle = (5 + 9) / 2 = 7
|
18
|
+
7にある値は8で,8 < 9なのでLeft = 7 + 1 = 8
|
19
|
+
・3回目
|
20
|
+
Left = 8
|
21
|
+
Right = 9
|
22
|
+
Left <= Right のため継続
|
23
|
+
Middle = (8 + 9) / 2 = 8
|
24
|
+
8にある値は9で,9 = 9なので"Found!"
|