본문 바로가기
개발관련

C언어 이진탐색 알고리즘

by 딸기별땅 2021. 6. 17.
#include <stdio.h>
  int calc(int *arr, int arrSize, int find){
       int start = 0;
       int end = arrSize-1;
       int calcCount = 0;
       int center;
   
       while(start <= end){
           center = (start+end)/2;
          calcCount ++;
          printf("센터값:%d, 연산횟수:%d\n", center, calcCount);
          if(find == arr[center]){
              printf("값을찾았습니다%d 번째배열\n", center);
              return 1;
          } else {
              //못 찾은 경우
              if(find > arr[center]){
                  start = center+1;
              }else {
                  end = center-1;
              }
          }
      }
      return 0;
   }
int main(void) {
	int myArr[10] = {1,3,5,6,9,11,13,24,32};
	int arrLength = sizeof(myArr) / sizeof(int);
	calc(myArr, arrLength, 11);
	return 0;
}

댓글