분할 알고리즘 2 분 찾기

1019 단어 이분 찾기
분할 알고리즘 의 기본 사상 은 하나의 규모 가 n 인 문 제 를 k 개의 규모 가 작은 서브 문제 로 분해 하 는 것 이다. 이런 서브 문 제 는 서로 독립 되 고 원래 의 문제 와 같다.이러한 문 제 를 재 귀적 으로 풀 고 나 서 각 문제 의 해 를 합 쳐 원래 의 문제 의 해 를 얻 었 다.분 치 법의 분할 원칙 은 원래 의 문 제 를 같은 크기 의 문제 로 분해 하 는 것 이 가장 효과 적 이다.그리고 실천 경험 에 따 르 면 이 문제 들 의 크기 가 같은 상황 은 크기 가 다른 상황 보다 낫다.
이 알고리즘 이 주로 사용 하 는 사상 은 바로 재 귀 이 고 분 치 와 재 귀 는 쌍둥이 형제 이다.
이분 검색 알고리즘 은 분 치 전략 을 활용 한 전형 적 인 예 이다.
2 분 검색 알고리즘 은 이해 하기 쉽 지만 정확 한 2 분 검색 알고리즘 을 쓰 는 것 도 쉬 운 일이 아니다. 첫 번 째 2 분 검색 알고리즘 은 1946 년 에 나 타 났 으 나 첫 번 째 정확 한 2 분 검색 알고리즘 은 1962 년 에 야 나 타 났 다.
다음은 제 가 쓴 알고리즘 코드 입 니 다.
bool HalfSearch(int data[],int x,int n){

	assert(n);	// assert    0

	int low=0,high=n-1;

	int middle=0;

	while(low<=high)

	{

		middle=(low+high)/2;

		if(data[middle]>x)

		{

			high=middle-1;

		}

		else if(x>data[middle])

		{

			low=middle+1;

		}

		else if(x==data[middle])

		{

			cout<<"       ,   "<<middle<<endl;

			return true;

		}

	}

	

	return false;

}


좋은 웹페이지 즐겨찾기