程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

高级Java面试之二分法查找(二分法查找 java)

balukai 2025-04-01 15:57:42 文章精选 22 ℃

二分法是基础算法里比较简单的算法,其前提条件是数组已经排好序。二分法查找是在面试尚德机构时,问到的面试题。面试官要求手写二分法的代码。所以正在找工作或者即将找工作的童鞋,需要好好理解该算法及其实现。

核心思想:

如果 value==arr[mid],中间值正好等于要查找的值,则返回下标,return mid;

如果 value<arr[mid],要找的值小于中间的值,则再往数组的小端找,high=mid-1;

如果 value>arr[mid],要找的值大于中间的值,则再往数组的大端找,low=mid+1;

二分法原理图

/**
 * 二分法查找数据
 */
public int binarySearch(long value) {
   int middle = 0;
   int low = 0;
   int pow = elements;
   
   while(true) {
      middle = (pow + low) / 2;
      if(arr[middle] == value) {
         return middle;
      } else if(low > pow) {
         return -1;
      } else {
         if(arr[middle] > value) {
            pow = middle - 1;
         } else {
            low = middle + 1;
         }
      }
   }
}

Tags:

最近发表
标签列表