//아카데미에서 공부한답시고 대충 만든거라 문제 많다는 것이 큰 문제...
#include <iostream>
using namespace std;
//여유 있게 잡은 메모리 배열 버퍼
int Arrary[1000] = { 0, };
//재귀 함수로 쓰일 함수.
int Search(int input, int f_index, int l_index);
void main()
{
int a = 0;
int i = 0; int result = 0;
for (i = 0; i < 10; i++)//자료 정렬
{
Arrary[i] = i + 1;
}
cout << "이진 탐색 알고리즘 예제\n";
cout << "찾으시려는 데이터 값을 입력하여 주십시오.\n";
cout << "입력 : ";
cin >> a;
result = Search(a, 0, i);
if (result == -1)
cout << "에러!";
else
cout << "동일한 데이터 확인 : " << Arrary[result] << ", " << "인덱스 값 : " << result << endl;
}
int Search(int input, int f_index, int l_index)
{
int low = 0; int High = input; int mid = 0;
if (low < High)
{
mid = (l_index + f_index) / 2;
if (High != Arrary[mid])
{
if (High < Arrary[mid])
{
//자기 자신을 부르는 방식(재귀함수)을 사용.
return Search(High, f_index, mid);
}
else if (High > Arrary[mid])
{
//자기 자신을 부르는 방식(재귀함수)을 사용.
return Search(High, mid, l_index);
}
}
else if (High == Arrary[mid])
{
//cout << "동일한 데이터 확인 : " << Arrary[mid] << ", " << "인덱스 값 : " << mid << endl;
return mid;
}
}
else
return -1;
// return 0;
}
'[C], [ C++]' 카테고리의 다른 글
퀵 정렬 - Quick Sort (0) | 2015.05.28 |
---|---|
삽입 정렬 - Insert Sort (0) | 2015.05.28 |
버블 정렬(Bubble Sort) (0) | 2015.05.28 |
이진 검색 트리 알고리즘2 (0) | 2015.05.28 |
이진 트리 예제 (0) | 2015.05.28 |