十大算法之二分查找

2020-04-13 275次浏览 已收录 0个评论

十大算法二分查找算法篇

package 十大算法;

public class 二分查找非递归 {
public static void main(String[] args) {
 int arr[] = {1,3,8,10,11,67,100};
 int index=find(arr,11);
 System.out.println(index);
}
/**
 * 
 * @param arr 待查找的数组,是升序的
 * @param finddata 需要查找的数
 * @return
 */
public static int find(int []arr,int finddata) {
 int left=0;
 int right=arr.length-1;
 while(left<=right) {//继续查找
  int mid=(left+right)/2;
  if(arr[mid]==finddata) {
   return mid;
  }else if(arr[mid]>finddata) {
   right =mid-1;//需要向左边查找
  }else {
   left=mid+1;//需要向右边查找
  }
 }
 return -1;
}
}

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:十大算法之二分查找
喜欢 (1)

您必须 登录 才能发表评论!