现在的位置: 首页 > 综合 > 正文

二分查找法 (java版)

2018年04月18日 ⁄ 综合 ⁄ 共 504字 ⁄ 字号 评论关闭
最近工作闲暇抽空学习数据结构和算法。本人小菜,只是一步步的打好基础。
看的书是: java数据结构和算法(第二版)

二分查找法原理 :
摘录原书自己稍微改动下 ,书为打印版本  不好直接复制
如同猜数游戏, 游戏中,一个朋友让你猜她想的 1---100之间的数,当你猜了一个数之后,他会告诉你三种选择的一个:大,小,猜中。
为了能够最少的次数猜中,必须从50开始猜,如果小,则下次从50——100之间猜,下次猜75.如果大,则下次猜25, 依此类推

下面为实现的代码:

public static	Integer  halfFind(int []a, int num){
		
		
		
		int upperBound=a.length-1;
		int lowBound =0;
		int curIn=0;
		while(true){
			curIn =(lowBound+upperBound)/2 ;
			if(lowBound > upperBound){
				return -1;    //表示数不存在,防止陷入死循环   !!赞
			}
			
			if(a[curIn]>num){
				upperBound =curIn-1;
				
			}else if(a[curIn]<num){
				lowBound=curIn+1;
			}else{
				return curIn;
			}

		}

抱歉!评论已关闭.