데이터 구조 학습의 2분 검색법 귀속 실현

1259 단어
#include "stdio.h"
#include <vector>
#include <iostream>

using namespace std;

int binarySearch(const vector<int> & a, const int & x, int low, int high)
{
	if(low>high)
		return -1;
	
	int mid = (low + high)/2;
	// 
	if(a[mid]<x)
		return binarySearch(a, x, mid+1, high);
	else if(x<a[mid])
		return binarySearch(a, x, low, mid-1);
	else
		return mid;
}

int Search(const vector<int> & a, const int & x)
{
	return binarySearch(a, x, 0, a.size()-1);
}

void main()
{
	vector<int> box;
	
	box.push_back(1);
	box.push_back(4);
	box.push_back(6);
	box.push_back(7);
	box.push_back(8);
	box.push_back(10);
	box.push_back(13);
	box.push_back(21);
	box.push_back(22);
	box.push_back(30);
	
	const int searchValue = 22;
	
	int result = Search(box, searchValue);
	
	if(result == -1)
		cout<<" !"<<endl;
	else
		cout<<searchValue<<" "<<++result<<" "<<endl;
}

좋은 웹페이지 즐겨찾기