用递归实现对数组元素的二分查找

题目

用递归实现对数组元素的二分查找

实现

代码

#include<iostream>
using namespace std;

int BinarySearch(int a[], int low, int high, int key) {
	if (low > high)
		return -1;
	else {
		int mid = (low + high) / 2;
		if (a[mid] == key)
			return mid;
		else if (a[mid] > key)
			return BinarySearch(a, low, mid - 1, key);
		else
			return BinarySearch(a, mid + 1, high, key);
	}
}

int main() {
	int a[] = { 2, 3, 5, 8, 13, 16, 20 };
	int pos = BinarySearch(a, 0, 6, 10);
	cout << pos << endl;
	pos = BinarySearch(a, 0, 6, 16);
	cout << pos << endl;
	return 0;
}

输出

-1
5

猜你喜欢

转载自www.cnblogs.com/Za-Ya-Hoo/p/12686239.html