Java-二分法查找提升

Posted 刘飞飞飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java-二分法查找提升相关的知识,希望对你有一定的参考价值。

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

对二分法的整个过程梳理中,发现了 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-二分法查找提升的主要内容,如果未能解决你的问题,请参考以下文章

怎么计算java二分法查找的比较次数

如何实现数组的二分查找

java泛型 二分查找

java 二分查找法

二分查找+二分答案(Java)

二分算法(java超详细)