二分查找的非递归实现
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 }