zoukankan      html  css  js  c++  java
  • 程序员必备之二分查找

    二分查找

    //查找:顺序查找;二分查找
    
    //递归:程序调用自身的编程技巧;有一个函数(也可以同一个函数)就开辟一个新栈
    
    public class查找 {
    
        public static void main(String[] args) {
    
            int arr[]={2,5,8,14,25,36,44};
    
            BinaryFind.find(0, arr.length-1, 8, arr);
    
        }
    
    }
    
    //二分法
    
    class BinaryFind{
    
        static void find(int leftIndex,int rightIndex,int val,int arr[]){
    
            //找到中间的数
    
            int midIndex=(rightIndex+leftIndex)/2;
    
            int midVal=arr[midIndex];
    
            if(rightIndex>=leftIndex){
    
                //如果要找的数比midVal小
    
                if(midVal>val){
    
                    //中间数左边找
    
                    find(leftIndex,midIndex-1,val,arr);
    
                }else if(midVal<val){
    
                    //中间数右边找
    
                    find(midIndex+1,rightIndex,val,arr);
    
                }else if(midVal==val){
    
                    System.out.println("找到下标"+midIndex);
    
                }
    
            }
    
        }
    
    }
  • 相关阅读:
    高斯消元
    丑数
    扩展欧几里得算法与线性同余方程
    数论-求逆元
    数论-快速幂-快速乘
    宋逸轩长难句 2
    宋逸轩长难句 1
    c语言 文件
    c语言程序结构
    c语言结构类型
  • 原文地址:https://www.cnblogs.com/xdzy/p/9468617.html
Copyright © 2011-2022 走看看