다음 C 프로그램은 search
보다 작은 값으로 배열을 검색합니다. "array"의 값이 양의 정수인 경우이 값을 임의의 배열 길이로 추정 할 수 있습니까? 사전에이진 검색 : 최소값이
#include <stdio.h>
int main()
{
int array[11] = { 1, 5, 9, 15, 37, 49, 56, 65, 74, 90, 95};
int first = 0;
int last = 10;
int search = 95;
int middle = (first+last)/2;
while (first <= last) {
if (array[middle] < search)
first = middle + 1;
else if (array[middle] > search)
last = middle - 1;
else break;
printf("first= %d,last= %d, middle= %d, search= %d\n", first, last, middle, search);
middle = (first + last)/2;
}
printf("middle = %d\n", array[middle]);
}
Thaks, 호세 루이스
당신은 while 루프에서 1 개 라인을 누락
예 : search = 13 일 경우, array [middle] = 9; search = 59이면, array [middle] = 56; search = 1이면 array [middle] = 1; search = 130이면 array [middle] = 95; .... –
검색을 위해 95를 통과하면이 경우 두 번째 90을 제공 할 것이라고 말하고 싶습니까? – Mazhar
아니요, 검색을 위해 95를 통과하면 95를 부여합니다. –