思路分析
代码实现
package com.atguigu.binarysearchnorecursion;/*** @创建人 wdl* @创建时间 2021/4/2* @描述*/
public class BinarySearchNoRecur {public static void main(String[] args) {//测试int[] arr={1,3,8,10,11,67,89};int i = binarySearch(arr,67);System.out.println(i);}//二分查找的非递归实现/**** @param arr 待查找的数组 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;}}