목차
■ 문제인식
■ 문제접근 방법 및 분석
■ 소스코드 및 주석
■ 결과화면
■ 느낀점
■ 문제접근 방법 및 분석
■ 소스코드 및 주석
■ 결과화면
■ 느낀점
본문내용
song[], int x, int left, int right) //binary함수
{
int mid=(left+right)/2; //mid값 정의
if(left>right) //만일 left값이 right값보다 크다면 숫자는 존재하지 않는다
{
return -1;
}
if(song[mid]==x) //mid값이 찾고자하는 숫자와 같다면 mid값 return
{
return mid;
}
else if(song[mid]
{
return binary(song,x,mid+1,right); //left를 mid+1로 설정
}
else //찾고자하는 숫자가 song[mid]보다 작다면
{
return binary(song,x,left,mid-1); //right값을 mid-1로 설정
}
}
■ 결과화면
1. 이진탐색에서 찾고자 하는 숫자가 존재할때
2. 이진탐색에서 찾고자 하는 숫자가 존재하지 않을 때
■ 느낀점
이번 과제를 하면서 가장 어려웠던 부분은 이진탐색부분이었다. 처음 생각한대로 코딩을 한후 프로그램을 실행하였을 때 찾고자 하는 특정숫자의 위치가 올바르게 나오지 않는 문제가 있었다. 하여 프로그램을 완전히 지운다음 처음부터 다시 차근차근히 생각하면서 코딩을 한뒤 프로그램을 올바르게 작동시킬수 있었다. 이번 과제는 순환알고리즘에 대해 각자 과제를 하면서 깊이 생각해 보라는 뜻에서 내주신 것 같다. 이번학기 들어서 처음으로 나오는 과제여서 그런지 많이 어려운 편은 아니었으며 시간을 많이 들지는 않았다. 앞으로 어떠한 과제가 나올지 많이 궁금하다.
{
int mid=(left+right)/2; //mid값 정의
if(left>right) //만일 left값이 right값보다 크다면 숫자는 존재하지 않는다
{
return -1;
}
if(song[mid]==x) //mid값이 찾고자하는 숫자와 같다면 mid값 return
{
return mid;
}
else if(song[mid]
return binary(song,x,mid+1,right); //left를 mid+1로 설정
}
else //찾고자하는 숫자가 song[mid]보다 작다면
{
return binary(song,x,left,mid-1); //right값을 mid-1로 설정
}
}
■ 결과화면
1. 이진탐색에서 찾고자 하는 숫자가 존재할때
2. 이진탐색에서 찾고자 하는 숫자가 존재하지 않을 때
■ 느낀점
이번 과제를 하면서 가장 어려웠던 부분은 이진탐색부분이었다. 처음 생각한대로 코딩을 한후 프로그램을 실행하였을 때 찾고자 하는 특정숫자의 위치가 올바르게 나오지 않는 문제가 있었다. 하여 프로그램을 완전히 지운다음 처음부터 다시 차근차근히 생각하면서 코딩을 한뒤 프로그램을 올바르게 작동시킬수 있었다. 이번 과제는 순환알고리즘에 대해 각자 과제를 하면서 깊이 생각해 보라는 뜻에서 내주신 것 같다. 이번학기 들어서 처음으로 나오는 과제여서 그런지 많이 어려운 편은 아니었으며 시간을 많이 들지는 않았다. 앞으로 어떠한 과제가 나올지 많이 궁금하다.