binary search 어디서 잘못 되었을까요?
갤투
#includestdio.h
#includestdlib.h
#includetime.h
int binary_search(int *pArr,int len,int x);
int main(void)
{
int arr[100];
int i,j;
int temp;
int key;
int result;
srand(time(NULL));
printf(정렬되기 전의 값: );
for(i=0; i100; i++)
{
arr[i]=rand()%100+1;
printf(%d ,arr[i]);
} //100개의 난수 생성
printf(\n\n정렬 된 후의 값: );
for(i=0; i99; i++)
{
for(j=i+1; j100; j++)
{
if(arr[i]arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
printf(%d ,arr[i]);
}
printf(%d ,arr[99]); //난수의 정렬
printf(\n\n\n찾고자 하는 값을 입력하세요: );
scanf(%d ,&key);result=binary_search(arr,sizeof(arr)/sizeof(int),key);
if(result==-1)
printf(찾는 값이 없습니다.\n);
else
printf(찾는 값: %d,result);
return 0;
}
int binary_search(int *pArr,int len,int x)
{
int low=0;
int high=len-1;
while(low=high)
{
int mid=(low+high)/2;
if(x==pArr[mid])
return pArr[mid];
else if(xpArr[mid])
high=mid-1;
else if(xpArr[mid])
low=mid+1;
}
return -1;
}
바이너리 서치 프로그램이 잘 안되요 ㅠㅠ 도와주세요
-
타마
scanf(\%d \
-
리라
숫자치고 다른거 입력하는건 왜 그런지 알겠네요..^^
-
큰맘
감사합니다. 근데 (low=high) 이건 안되나요?
그리고 실행하면 숫자치고 또 다른 걸 입력해야 결과가 나오는데 왜 그런걸까요 ㅠㅠ -
슬아라
while(lowhigh)