관리 메뉴

알고리즘

이분검색 본문

study/programming

이분검색

Schizo! 2007. 12. 14. 02:23

#include <stdio.h>

int find(int low, int high);
int arr[5]={1,3,5,7,9};
int n;
int cnt=0;

int main(void){
 printf("숫자를 입력하세요:");
 scanf("%d",&n);
 find(0,4);
 return 0;
}

int find(int low, int high){

 int mid;
 while(1){
  if(low>high){
   printf("찾는 수가 없습니다");
   return 0;
  }
  mid=(low+high)/2;
  ++cnt;
  if(n==arr[mid]){
   printf("찾았습니다!%d는 %d번째 회전수는 %d입니다.",n,mid,cnt);
  return 0;
  }
  else if(n>arr[mid])
   low=mid+1;
  else if(n<arr[mid])
   high=mid-1;
 }
}


 

'study > programming' 카테고리의 다른 글

후위식.  (0) 2007.12.25
memset 함수  (0) 2007.12.17
call by value  (0) 2007.12.14
문자열  (0) 2007.12.10
소수구하기,이분검색  (0) 2007.12.09
Comments