代码改变世界

编程珠玑第四章

2012-07-27 10:53  javaspring  阅读(310)  评论(0编辑  收藏  举报

1、二分查找代码

int find(int *a,int n,int key)   //a为待查找数组,n为数组长度,key为待查找元素
{
	int begin=0,end=n-1,mid=0;

	while(begin<=end)
	{
		mid=(begin+end)/2;
		if(a[mid]==key)           //相等,直接返回key在数组中的位置
			return mid;
		else if(a[mid]>key)       //key较小,在左半部分查找
			end=mid-1;
		else                      //key较大,在右半部分查找
			begin=mid+1;
	}
 
	return -1;                    //查找失败,返回-1
}