Java之数组二分查找

    技术2025-05-13  9

    package cn.itcast_03; /* * 基本查找:数组无序(从头找到尾) * 二分查找(折半查找):数组有序的 * 分析: * A:定义最大索引,最小索引 * B:计算出中间索引 * C:拿中间索引的值和要查找的值进行比较 * 相等:就返回当前要查找的值进行比较 * 不相等: * 大了:左边找 * 小了:右边找 * D:重新计算出新的中间索引 * * 大:左边找 * max =min-1; * 小:右边找 * min = mid+1; * E:回到B */ public class 数组二分查找 { public static void main(String[] args) { //定义一个数组 int[] arr={11,22,33,44,55,66,77}; int x = getIndex(arr,22); System.out.println(x); } public static int getIndex(int[] arr,int value) { //定义最大索引和最小索引 int max =arr.length-1; int min = 0; //计算出中间索引 int mid = (min+max)/2; //那中间索引进行比较 while(arr[mid] != value) { if(arr[mid]>value) { max = mid-1; }else if(arr[mid]<value){ min = mid+1; } if(min>max) { return -1; } mid = (min+max)/2; } return mid; } }
    Processed: 0.010, SQL: 9