二分查找非递归Algorithm(java)

二分查找的适用条件

二分查找只适用于有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找
二分查找的运行时间为对数时间O(LONG2 N)

二分查找非递归的实现

/**
* @param arr 待查找的数据 升序排列
* @param target 需要查找的数
* @return 返回对应下标,-1表示没有找到
*/
public static int binarySearch(int[] arr ,int target)
  int left = 0;
  int right = arr.length-1;
  while(left<=right)
  {
   int mid = (left+right)/2;
    if(arr[mid] == target){
     return mid;
     }else if(arr[mid]>target){
      right =mid-1 ;//需要向左查找
    }else{
   left = mid+1;//需要右边查找
  }
 return -1;
  }


posted @ 2022-04-24 22:17  不会笑的孩子  阅读(20)  评论(0编辑  收藏  举报