
package com.atguigu.binarysearchnorecursion;/** * @author Dxkstart * @create 2022-04-11-19:28 */public class BinarySearchNoRecur { public static void main(String[] args) { int[] arr = {1,3,8,10,11,67,100}; int index = binarySearch(arr,11); System.out.println(index); } // 二分查找的非递归实现 /** * @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; }}