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-二分法查找提升的主要内容,如果未能解决你的问题,请参考以下文章