zoukankan      html  css  js  c++  java
  • 数组高级二分查找代码

    /**
      * * A:案例演示
       * 数组高级二分查找代码
      * B:注意事项
       * 如果数组无序,就不能使用二分查找。
        * 因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引。
      */
     public static void main(String[] args) {
      int[] arr = {11,22,33,44,55,66,77};
      System.out.println(getIndex(arr, 22));
      System.out.println(getIndex(arr, 66));
      System.out.println(getIndex(arr, 88));
     }
     
     /*
      * 二分查找
      * 1,返回值类型,int
      * 2,参数列表int[] arr,int value
      */
     
     public static int getIndex(int[] arr, int value) {
      int min = 0;
      int max = arr.length - 1;
      int mid = (min + max) / 2;
      
      while(arr[mid] != value) {     //当中间值不等于要找的值,就开始循环查找
       if(arr[mid] < value) {     //当中间值小于了要找的值
        min = mid + 1;      //最小的索引改变
       }else if (arr[mid] > value){   //当中间值大于了要找的值
        max = mid - 1;      //最大的索引改变
       }
       
       mid = (min + max) / 2;     //无论最大还是最小改变,中间索引都会随之改变
       
       if(min > max) {       //如果最小索引大于了最大索引,就没有查找的可能性了
        return -1;       //返回-1
       }
      }
      return mid;
     }
  • 相关阅读:
    Git的使用
    工具使用--Tomcat
    数据库优化-索引
    sql语句小练习
    Oracle sql 优化
    用词云图分析一带一路峰会哪3个词说的最多
    为什么你用不好Numpy的random函数?
    python3.6下安装结巴分词需要注意的地方
    UFO长啥样?--Python数据分析来告诉你
    关于matplotlib,你要的饼图在这里
  • 原文地址:https://www.cnblogs.com/wuxu/p/10635847.html
Copyright © 2011-2022 走看看