二分查找(非递归算法)

    技术2023-12-20  69

    package com.dk.binarysearchnorecursion; public class BinarySearchNoRecursion { public static void main(String[] args) { //测试 int[] arr = {1,3,8,10,11,67,100}; int index = binarySearch(arr,1); System.out.println("index=" + index); } //二分查找非递归实现 /** * * @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 if (arr[mid] < target){ left = mid + 1;//需要向右边查找 } } return -1;//没有找到 } } //输出 index=0 Process finished with exit code 0
    Processed: 0.011, SQL: 9