• 二分查找法


    画图分析:

    代码分析:

     1 /*
     2  * 查找:
     3  *         基本查找:数组元素无序(从头找到尾)
     4  *         二分查找(折半查找):数组元素有序
     5  * 
     6  * 分析:
     7  *         A:定义最大索引,最小索引
     8  *         B:计算出中间索引
     9  *         C:拿中间索引的值和要查找的值进行比较
    10  *             相等:就返回当前的中间索引
    11  *             不相等:
    12  *                 大    左边找
    13  *                 小    右边找
    14  *         D:重新计算出中间索引
    15  *             大    左边找
    16  *                 max = mid - 1;
    17  *             小    右边找
    18  *                 min = mid + 1;
    19  *         E:回到B
    20  */
    21 public class ArrayDemo {
    22     public static void main(String[] args) {
    23         //定义一个数组
    24         int[] arr = {11,22,33,44,55,66,77};
    25         
    26         //写功能实现
    27         int index = getIndex(arr, 33);
    28         System.out.println("index:"+index);
    29         
    30         //假如这个元素不存在后有什么现象呢?
    31         index = getIndex(arr, 333);
    32         System.out.println("index:"+index);
    33     }
    34     
    35     /*
    36      * 两个明确:
    37      * 返回值类型:int
    38      * 参数列表:int[] arr,int value
    39      */
    40     public static int getIndex(int[] arr,int value){
    41         //定义最大索引,最小索引
    42         int max = arr.length -1;
    43         int min = 0;
    44         
    45         //计算出中间索引
    46         int mid = (max +min)/2;
    47         
    48         //拿中间索引的值和要查找的值进行比较
    49         while(arr[mid] != value){
    50             if(arr[mid]>value){
    51                 max = mid - 1;
    52             }else if(arr[mid]<value){
    53                 min = mid + 1;
    54             }
    55             
    56             //加入判断
    57             if(min > max){
    58                 return -1;
    59             }
    60             
    61             mid = (max +min)/2;
    62         }
    63         
    64         return mid;
    65     }
    66 }
  • 相关阅读:
    分页,上传,下载
    java web 开发模式
    EL/JSTL-jsp页面更简单的输出方式
    过滤器和监听器
    Servlet
    jsp标准动作
    java Bean
    寻找你的热情(1)——检查自己所处的位置
    fedora25 安装sublime text3
    python实例3-天气小模块
  • 原文地址:https://www.cnblogs.com/jiangjianzhu/p/5799237.html
Copyright © 2020-2023  润新知