首页 > 其他 > 详细

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

时间:2020-09-02 14:51:55      阅读:49      评论:0      收藏:0      [点我收藏+]
/**
*@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;
}

  

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!