zoukankan      html  css  js  c++  java
  • 二分查找的实现(java版本)

    一、二分法查找的定义

      依次将所查找数据与中心数据对比,根据大小调整数据边界
    二、二分查找的条件

      数组必须排序
    三、二分查找的原理

      

    四、二分法查找的代码

    /*
     * 从数组当中找到4所在的索引:
     *         {2,4,6,7,43,57,90,101}
     */
    public class Demo3 {
    
        public static void main(String[] args) {
                
            int[] arr = {2,4,6,7,43,57,90,101};
            int number = 10;
            System.out.(method(arr, number));
            
    
        }
        
        public static int method(int[] arr,int number){
            
            int start = 0; //定义变量,记录最小的索引
            int end = arr.length-1; //定义变量,记录最大的索引
            int mid = (start+end)/2; //定义变量,记录中间的索引
            
            while(arr[mid]!=number) {  //只要查找的数不等于数组中间的数,就继续查找,如果中间的数等于查找的数,则mid就是要求的索引
                
                if(number<arr[mid]) {  //如果这个数比数组中间的数小,则让最大的索引=mid-1
                    end = mid-1;
                }else if(number>arr[mid]) {  //如果这个数比数组中间的数大,则让最小的所用=mid+1
                    start = mid+1;
                }
                
                if(start>end) {    //如果出现最小索引大于最大索引的情况,说明数组中不存在这样的元素
                    return -1;
                }
                
                mid = (start+end)/2;  //每次循环后,因为首尾的索引变化了,所以中间的索引也需要变化
            }
            
            return mid;  //如果数组中有这个元素,则返回
        }
        
    
    }
    View Code
  • 相关阅读:
    springcloud
    redis实现Session
    深入理解Dip Ioc Di以及Ioc容器
    SQL Server 索引维护 索引碎片 填充因子
    SQL Server 非聚集索引的覆盖,连接交叉和过滤
    SQL Server 索引 聚集索引、非聚集索引、堆
    T-SQL存储过程
    T-SQl 批处理
    T-SQl 游标
    T-SQL 控制流语句
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7535715.html
Copyright © 2011-2022 走看看