급합니다.. 이거좀 봐주세요
초월
#includestdio.h
#define SIZE 10
void serch(int value, int low, int end);
int grade[SIZE] = {3,2,9,7,1,4,8,0,6,5};
int num=1;
int main()
{
int low=0, end=SIZE, value;
while(1)
{
printf(\n찾고자 하는 정수 입력 : );
scanf(%d, &value);
serch(value, low, end);
}
}
void serch(int value, int low, int end)
{
int mid;
mid = (low + end) / 2;
if(low end)
{
printf(존재하지 않습니다.\n\n);
num=1;
}
else
{
if(value==grade[mid])
{
printf(검색횟수는 %d 회입니다.\n\n, num);
num=1;
}
else if(value grade[mid])
{
num++;
serch(value, low, mid-1);
}
else if(value grade[mid])
{
num++;
serch(value, mid+1, end);
}
}
}2진검색으로 찾는 겁니다. 근데 0~9까지중에서도 3,4,6을 입력했을떄는 몇번만에 찾았다고 나오지만 그외에 숫자 1,2,5,7,8,9,0은 존재 하지 않는다고 실행됩니다 어디부분을 고쳐야되는건가요?
-
연하얀
ㅈㅅ헙나다만 저도 이진검색하고 알고리즘을 배우는 사람으로써 애기해 드리는 겁니다만 이것은 이진검색을 활용한 문제가 아닌듯 보입니다. 이진검색(binary tree)를 정확하게 구글 창에서 웹서핑 하는 쪽을 권유합니다.
-
뿡뿡몬
그럼 소스가 말이 안 되네요. 정렬 알고리즘에 의해 정렬하라는데 정렬은 안 하고 검색만 하시는 거잖아요.
-
올해1살
네 저도 무슨말 하시는지 알겠습니다 그럼 저 소스 자체가 말이 안되는거 입니까?
문제는 정열 알고리즘에 의해 정렬된 배열의 값을 이용하여 2진 검색을 수행하라.
이렇게 나와있었습니다 -
PinkPearl
정렬이 안 되어 있을 때는 순차 검색이 아니면 찾을 방법이 없습니다...
이진 검색을 어떤 때 쓰는 건지 모르시는 듯...-_-;