zoukankan      html  css  js  c++  java
  • Java实现二分查找(折半查找)

    递归法

    package com.liuzhen.chapter4;
    
    public class BinarySearch {
        //方法1:递归求解
        public void recursionSearch(int[] A,int start,int end,int number){
            int mid = (start + end)/2;
            if(A[mid] == number)
                System.out.println("使用递归法求取number = "+number+"的数组下标结果:"+mid);
            if(A[mid] > number)
                recursionSearch(A,start,mid-1,number);   //递归调用
            if(A[mid] < number)
                recursionSearch(A,mid+1,end,number);     //递归调用
        }
        
        
        public static void main(String[] args){
            BinarySearch test = new BinarySearch();
            int[] A = {3,14,27,31,39,42,55,70,74,81,85,93,98};
            test.recursionSearch(A, 0, A.length-1, 70);
        }
    }
    
    

    迭代法

    package com.liuzhen.chapter4;
    
    public class BinarySearch {
        
        //方法2:迭代求解
        public int iterationSearch(int[] A,int number){
            int start = 0;
            int end = A.length-1;
            while(start <= end){
                int mid = (start + end)/2;
                if(A[mid] == number)
                    return mid;
                if(A[mid] > number)
                    end = mid-1;
                if(A[mid] < number)
                    start = mid+1;
            }
            return -1;
        }
        
        public static void main(String[] args){
            BinarySearch test = new BinarySearch();
            int[] A = {3,14,27,31,39,42,55,70,74,81,85,93,98};
            System.out.println("使用迭代法求解number = 70的数组下标结果:"+test.iterationSearch(A, 70));
        }
    }
    
    
    使用迭代法求解number = 70的数组下标结果:7
    
  • 相关阅读:
    JAVA基础之(十三)“集合”
    JAVA基础之(十二)“泛型”
    JAVA基础之(五)”继承“
    算法--验证时间段不交叉/不重复的方法
    工具类--常量类
    工具--常见eclipse配置导入web工程(tomcat容器)步骤
    jar包--POI.jar包使用问题汇总
    java中常忽视的小问题
    ResultSetMetaData
    PreparedStatement
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074427.html
Copyright © 2011-2022 走看看