关闭

二分法查找

标签: 二分法查找代码 折半查找
197人阅读 评论(0) 收藏 举报
分类:


                                               二分法查找

(一)   二分法查找又叫折半查找,对于已经按从小到大排好序的数组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;
		
	}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9476次
    • 积分:326
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类