728x90
#include<stdio.h>
void main()
{
int left, mid, right, i,j, cnt, find=0,min, index,q=0;
int num[] = {2,10,3,4,5,6,13,8,9};
cnt = sizeof(num)/sizeof(int); // 배열의 크기 탐색
// 배열 정렬
for ( i = 0; i < cnt-1; i++ )
{
index = i;
min = num[i];
for ( j = i + 1; j < cnt; j++ )
{
if ( min > num[j] )
{
min = num[j];
index = j;
}
}
num[index] = num[i];
num[i] = min;
}
left = 0;
right = cnt;
for(i=0;i<cnt;i++)
printf("%5d",num[i]);
printf("\n이 배열 에서 찾으려는값 : ");
scanf("%d",&find);
//탐색
for(i=0;i<cnt;i++)
{
mid = (left+right)/2;
if(find==num[mid])
{
break;
}
else if(find<num[mid])
right = mid-1;
else
left = mid+1;
}
if(i!=cnt)
printf("%d는 num[%d]에 있습니다.\n",find,mid);
else
printf("없긔\n");
}
'it > programming' 카테고리의 다른 글
| Simple Words를 통한 개발자의 기쁨 (0) | 2012.07.22 |
|---|---|
| [ C++ ] 재귀함수를 사용한 Hailstone( 우박수 : 콜라츠의 추측 ) (5) | 2012.06.13 |
| [ C++ ] Call by reference 기법을 이용한 최대값 구하기 (0) | 2012.05.28 |