zoukankan      html  css  js  c++  java
  • Arrays.binarySearch 数组二分查找

     public static void main(String[] args) throws  Exception {
            /**
             * binarySearch(Object[], Object key)
             a: 要搜索的数组
             key:要搜索的值
             如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素的索引。
             技巧:
             [1] 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;
             [2] 搜索值是数组元素,从0开始计数,得搜索值的索引值;
             [3] 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);
             [4] 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。
             binarySearch(Object[], int fromIndex, int toIndex, Object key)如上
             */
            int arr [] = new int[]{1,3,4,5,8,9};
            System.out.println(arr.length+1);
            Arrays.sort(arr);
            int index1 = Arrays.binarySearch(arr,6);
            int index2 = Arrays.binarySearch(arr,4);
            int index3 = Arrays.binarySearch(arr,0);
            int index4 = Arrays.binarySearch(arr,10);
            System.out.println("index1="+index1);
            System.out.println("index2="+index2);
            System.out.println("index3="+index3);
            System.out.println("index4="+index4);
    
    
    
        }
    结果如下

    index1=-5
    index2=2
    index3=-1
    index4=-7

     
  • 相关阅读:
    TQ2440之DMA+IIS
    ST公司三轴加速度计LIS3DH应用
    TQ2440之PMW
    WinForm操作SQL Server数据库笔记
    DataRelation Learning
    SQL中join,left join,right join
    C#使用异步方式调用同步方法
    .Net Framework中的委托与事件转载
    Android site link
    【java】jdk时间差问题
  • 原文地址:https://www.cnblogs.com/zyzcj/p/7933672.html
Copyright © 2011-2022 走看看