java二分查找举例讨论

2022-12-11,,,

最近做笔试题有这么一个关于二分查找的例子。

给一个有序数组,和一个查找目标,用二分查找找出目标所在index,如果不存在,则返回-1-(其应该出现的位置),比如在0,6,9,15,18中找15,返回3;找10.则返回-4(-1-3)

实现如下:

public class Sulution1 {

    public static void main(String[] args)  {
System.out.println(findBySep(2, new int[]{0,2,4,6,9}));
} public static int findBySep(int a, int[] arr){ int high = arr.length-1;
int low = 0;
int mid = 0;
while(high>=low){
mid = low+((high-low)>>1);
if(a==arr[mid]) return mid;
else if(a>arr[mid]) low = ++mid;
else high = --mid;
} return -1-(a>arr[mid]?++mid:mid);
} }

java二分查找举例讨论的相关教程结束。

《java二分查找举例讨论.doc》

下载本文的Word格式文档,以方便收藏与打印。