十大算法之二分查找

首页 » 算法 » 十大算法之二分查找

十大算法二分查找算法篇

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;
}
}
分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

 



觉得文章有用就打赏一下弟弟吧

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
正在播放:

作者想对您说:

累了就停下来听首歌吧

听完后会给您一个好心情

最后

等到您不容易

还希望您能多待一会儿

      00:00/00:00