码迷,mamicode.com
首页 > 编程语言 > 详细

Java-二分法查找提升

时间:2017-09-19 17:53:27      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:oid   ret   新建   注意   []   基于   位置   sys   方法   

基于基础的二分法查找方法,做出了相应的该进。

对二分法的整个过程梳理中,发现了 min  和 max 值的关系

 因为有min <= max 的关系存在,所以才有之后的mid过程。

以这个关系为基础,重新建立了while函数的关系。并且增加了功能使该代码能够实现不在数组中的元素,应该在数组的那个位置插入

注意最后的return  -return-1是改功能的体现,-1是为了防止0的出现。

class TestJava
{
public static void main(String[] args)
{
int[] arr = {12,34,35,45,56,67,89,99,112,113,114};
int key = 111;
int mid = HalfSort(arr,key);
System.out.println("位置为:" + mid);
}
public static int HalfSort(int arr[],int key)
{
int min = 0;
int max = arr.length-1;
int mid = 0;
while(min <= max)
{
mid = (max + min) >> 1;
if (key < arr[mid])
max = mid - 1;
else if(key > arr[mid])
min = mid + 1;
else
return mid;
}
return -mid-1;
}
}

 

Java-二分法查找提升

标签:oid   ret   新建   注意   []   基于   位置   sys   方法   

原文地址:http://www.cnblogs.com/liufeifeifei/p/7552616.html

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