//아카데미에서 공부한답시고 대충 만든거라 문제 많다는 것이 큰 문제...

#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

+ Recent posts