이진탐색이란
2023. 1. 11. 16:21ㆍ알고리즘
2021년에 연세대학교에서 진행하는 AI SUMMER SCHOOL 교육 과정을 수료했었는데요
그때 이진탐색이라는 알고리즘을 알게 되었습니다
이진 탐색이란 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘입니다.
이진탐색은
배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값과 비교하고 찾고자 하는 값이 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로, 찾고자 하는 값이 중간값보다 크면 배열의 우측을 대상으로 다시 탐색합니다. 같은 방법으로 해당 값을 찾을 때까지 중간의 값을 임의로 선택하고 비교합니다.
제가 만든 프로그램인데요 이진탐색을 활용하여
인덱스 값을 출력하는 프로그램입니다 코드 설명을 해보자면 배열로 변수를 만든 후 배열 안에 1,3,5,7,9라는 숫자들이 들어가게 설정해두며 low와 high로 대소를 비교하여 mid값 즉 인덱스 번호를 출력하는 코드입니다.
#include <stdio.h>
main (void){
int mid, low, high, num;
int a[5]={1,3,5,7,9};
printf("찾고자 하는 숫자를 입력하세요:");
scanf("%d",&num);
low=1;
high=4;
while(low<=high){
mid=(low+high)/2;
if(num==a[mid]){
printf("인덱스 : %d \n",mid);
return 0;
}else{
if(num<a[mid]){
high=mid-1;
}else{
low=mid+1;
}}}
printf("Not found\n");
return 0;
}

이진탐색의 종료 조건은 원하는 값을 찾았을 때입니다.!!
