本试验取材郭炜老师的《程序设计与算法》
从顺序查找到二分查找,改变了程序设计理念,到如今还有人不断努力实现耕耘,下面给出二分查找的源码,希望仔细揣摩二分查找法的精髓!

//二分查找法
#include<iostream>
using namespace std;
int BinarySearch(int a[],int size,int p){
	int L = 0;
	int R = size - 1;
	while(L<=R){
		int mid = L + (R-L)/2;
		if(p==a[mid]){
			return mid;}
		else if(p>a[mid])
			L = mid+1;
		else
			R = mid-1;
	}
	return -1;
}
int main()
{
	int a[5]={1,2,3,4,5};
	int d = BinarySearch(a,5,4);
	cout << d << endl;
	return 0;
	
}

总结:二分查找法,两个游标不断游来游去,是二分的核心,其中L+(R-L)/2能让程序不会因为L+R/2范围越界,也是一个不错的核心理念,挺不错的!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐