二分查找的非递归实现

 1 public class BinarySearchNoRecur {
 2 
 3     public int binarySearch(int arr[], int target) {
 4         if (arr == null || arr.length == 0) {
 5             return -1;
 6         }
 7         int left = 0;
 8         int right = arr.length;
 9         while (left <= right) {
10             int mid = left + (right - left) / 2;
11             if (arr[mid] > target) {    //向左查找
12                 right = mid - 1;
13             } else if (arr[mid] < target) {     //向右查找
14                 left = mid + 1;
15             } else {
16                 return mid;
17             }
18         }
19         return -1;
20     }
21 
22 }
原文地址:https://www.cnblogs.com/codewy/p/13413575.html