二分法查找


                                               二分法查找

(一)   二分法查找又叫折半查找,对于已经按从小到大排好序的数组a[],当要查找某个元素b的时候,先计算(a.length - 1)/2 把该位置上的元素与b比较,如果b比a[(a.length - 1)/2]小,则在a[(a.length - 1)/2]的左边区间找。这是再算出左边区间的中间下标,又把该位置上的元素与b比较,依次类推。



比如数组int  a[] = {2,11,15,19,30,32,61,72,88,90,96}现在要用二分法查找15

步骤如下,(a.length - 1)/2  = 5 ,a[5]= 32. 15< 32,所以在左区间找。 这时候{(a.length - 1)/2}/2 = 2

                  a[2]= 15,刚好 就找到了


代码如下:

public class ErFenFaSearch {
	public static void main (String args[]){
		int  a[] = {2,11,15,19,30,32,61,72,88,90,96};
		search(a, 0, a.length - 1, 30);
	}
	
	public static int search(int s[],int low ,int high,int value){
		 int mid;
		
		while(low < high){
			mid = (low + high)/2;
			if(value == s[mid]){
				System.out.print(mid);
				return  mid ;
			}
			else if(value< s[mid]){
				high = mid;
			}
			else if(value > s[mid]){
				low  =  mid;
			}
			}
		System.out.print(-1);
		return  -1;
		
	}

阅读更多
个人分类: 随笔
想对作者说点什么? 我来说一句

c语言 二分法查找

2010年05月11日 312B 下载

没有更多推荐了,返回首页

不良信息举报

二分法查找

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭