漫画:“浅谈”二分查找

  • 2019 年 10 月 4 日
  • 筆記

你干嘛呢

研究二分查找

我去,你学习了,给我说说怎么回事

也叫折半排序,这个方法查询比较高效,时间复杂度为O(log2n),不过他有一个要求,要是有序的顺序的存储结构表。

哇,大佬举个?

好,就是目标查找数每次都和数组的中间数做比较,中间数(mid)就是low(最低)+high(最高)的平均值的这个位置。如果目标数>mid,就把low往后移动,如果小则把high往前移动循环直到找到这个数为止,没有就返回-1好了,正好我画了图给你看看。

注:图片点击放大

可以哦,代码内

你怎么知道我刚写完

public static int binarySearch (int target,int[] ary) {      int low = 0;      int high = ary.length - 1;      while (low <= high) {          int middle = (low + high) >> 1;          if (ary[middle] > target) {              high = middle - 1;          } else if (ary[middle] < target) {              low = middle + 1;          } else {              return middle;          }      }      return -1;  }

太赞了,向你学习,谢谢

不谢哈,回头我还请教你呢

好的,早点休息

嗯嗯拜拜

Exit mobile version