码迷,mamicode.com
首页 > 其他好文 > 详细

向左向右 —折半查找(二分法)

时间:2020-09-15 21:24:27      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:arp   最大   har   最大值   说明   key   ati   hot   查看   

/**
*@param 参数一:查找的数组 参数二:要找的值
*
*/
public static int dichotomia(int[] arry,int key)
{
	int min = 0;
	int max = arry.length() - 1;
	int mid = (min + max)>>1;      //先选一般查看是否为查找值
	while(arry[mid] != key)
	{
		if(arry[mid] < key){    //判断大小 改变最值来决定向上还是向下继续查找
			min = mid +1;        
		}else {
			max = mid -1;
		}
		mid = (min + max)>>1;    //继续二分获取中间值
		if(min > max || max < min){  //如果比最大值大 或比最小值小 说明没有 返回-1
			return -1;
		}
	}

	return mid;
}

  

向左向右 —折半查找(二分法)

标签:arp   最大   har   最大值   说明   key   ati   hot   查看   

原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13601128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!