zoukankan      html  css  js  c++  java
  • 二分查找

    直接上代码

    /**
     * 二分查找应用的两个条件:
     * 1.数据的存储必须是顺序存储结构,也就是带下标的,例如array和list
     * 2.数据必须有规律可循,例如已经按大小排序好
     */
    public class BinarySearch {
        //迭代实现,这里假设数据按照从小到大的顺序排列好
        public void binarySearch1(int[] a,int target)
        {
            int sta = 0;
            int end = a.length -1;
            int mid = -1;
            while(sta < end)
            {
                mid = (sta + end)/2;
                if(a[mid] > target)
                    end = mid - 1;
                else
                    sta = mid + 1;
            }
            if (mid == -1)
                System.out.println("数据没找到");
            System.out.println(mid);
        }
        //递归实现
        public void binarySearch2(int[] a ,int target,int sta,int end)
        {
            if(sta > end)
            {
                    System.out.println("数据没找到");
                    return ;
            }
            int mid = (sta + end)/2;
            if (a[mid] >target)
                binarySearch2(a,target,sta,mid-1);
            else if (a[mid] < target)
                binarySearch2(a,target,mid+1,end);
            else
                System.out.println(mid);
        }
    }
  • 相关阅读:
    三角函数
    第十七次作业
    第十六次作业
    第15次作业
    第13次java作业
    第十二次java作业
    第十一次java作业
    第十次java作业
    第九次java
    第八次java作业
  • 原文地址:https://www.cnblogs.com/stAr-1/p/7058751.html
Copyright © 2011-2022 走看看