高级Java面试之二分法查找

高级Java面试之二分法查找

编码文章call10242025-05-13 19:35:521A+A-

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

核心思想:

如果 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;
         }
      }
   }
}
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4