您的位置 首页 java

Java查找算法——二分查找(折半查找)

前提条件 :已排序的数组中查找

二分查找 的基本思想是 :首先确定该查找区间的中间点位置: int mid = (low+upper) / 2;然后将待查找的值与中间点位置的值比较:若相等,则查找成功并返回此位置。若中间点位置值大于待查值,则新的查找区间是中间点位置的左边区域。若中间点位置值小于待查值,则新的查找区间是中间点位置的右边区域。下一次查找是针对新的查找区间进行的。

步骤:

第一步,先用之前学过的排序方法将数组按升序排序

第二步,取中间数,中间数大于要找的数,找中间数左半部分,负责找右半部

第三步:重复第一步和第二步,直到找到数据或者比较完所有数据。

Java代码

这里排序可以看我之前写的文章

以下代码为方便复制粘贴

public class BinarySearch {
 public static void main(String[] args) {
 int[] array = new int[]{0,53,63,38,71,25,22,11,95,38};
 //先排序,这里用的是 冒泡排序 
 int[] sort = BubbleSort.sort(array);
 System.out.println(Arrays.toString(sort));
 int search = search(sort, 53,0,sort.length-1);
 System.out.println(search);
 }
 public static int search(int[] array,int ele,int low,int high){
  while  (low <= high){
 //找到中间值
 int mid = (low + high) / 2;
 if(array[mid] == ele){
 return mid;
 }else{
 //如果中间值小于要查找的值,去右半部分继续查找;负责去左半部分去查找
 if(array[mid] < ele){
 low = mid++;
 }else{
 high = mid--;
 }
 }
 }
 return -1;
 }
}
 

文章来源:智云一二三科技

文章标题:Java查找算法——二分查找(折半查找)

文章地址:https://www.zhihuclub.com/199451.shtml

关于作者: 智云科技

热门文章

网站地图