인터넷 강의로 들었을때에는 첫번째 값(F)과 마지막 값(L)을 이용하여
중간값을 구하며 범위를 좁혀나가는걸로 이해했는데
해설지가 이해가 안되네요
제가 풀이한 식은
3, 18, 47, 54, 65, 83, 94, 97
(3 + 97)/2 = 50 -> ① (51 + 97)/2 = 74 -> ②
(51 + 73)/2 = 62 -> ③ (63 + 73)/2 = 68 -> ④
(63 + 67)/2 = 65 -> ⑤
비교해야할 횟수는 5회가 나왔는데 제 풀이와 해설지가 다르네요
풀이 좀 부탁드립니다.
안녕하세요 길벗수험서 운영팀입니다.
2진 검색해서 비교에 사용되는 기준은 '값'이 아닌 '위치'입니다.
위치 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
값 | 3 | 18 | 47 | 54 | 65 | 83 | 94 | 97 |
때문에 처음은
1. (1+8)/2= 4.5의 정수 4의 위치에 있는 값과 비교합니다. (65=54 - 거짓)
2. 65>54이므로 다음 위치인 5~8 범위에서 검색합니다.
(5+8)/2= 6.5의 정수 6의 위치에 있는 값과 비교합니다. (65=83 - 거짓)
3. 65<83이므로 앞의 위치인 5~5위치에 있는 값과 비교합니다.
(5+5)/2 = 5의 위치에 있는 값과 비교합니다. (65=65 - 참)
이렇게 3회 비교하게 됩니다.
실제 값이 아닌 위치를 기준으로 2진 검색이 수행된다는 점을 염두에 두세요.
행복한 하루되세요 :)
-
관리자2020-04-08 11:33:11
안녕하세요 길벗수험서 운영팀입니다.
2진 검색해서 비교에 사용되는 기준은 '값'이 아닌 '위치'입니다.
위치
1
2
3
4
5
6
7
8
값
3
18
47
54
65
83
94
97
때문에 처음은
1. (1+8)/2= 4.5의 정수 4의 위치에 있는 값과 비교합니다. (65=54 - 거짓)
2. 65>54이므로 다음 위치인 5~8 범위에서 검색합니다.
(5+8)/2= 6.5의 정수 6의 위치에 있는 값과 비교합니다. (65=83 - 거짓)
3. 65<83이므로 앞의 위치인 5~5위치에 있는 값과 비교합니다.
(5+5)/2 = 5의 위치에 있는 값과 비교합니다. (65=65 - 참)
이렇게 3회 비교하게 됩니다.
실제 값이 아닌 위치를 기준으로 2진 검색이 수행된다는 점을 염두에 두세요.
행복한 하루되세요 :)