专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Java顺序查找、二分查找

Java顺序查找、二分查找

  查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,只需要一个个对比即可,但其实效率很低。

顺序查找

动图演示

62_1.png

详细代码

      // 顺序查找
      public static boolean search(int[] arrray, int key) {
        for (int i = 0; i < arrray.length; i++) {
            if (arrray[i] == key) {
                return true;
            }
        }
        return false;
    }

二分查找

  二分法查找适用于大的数据,但前提条件是数据必须是有序的,他的原理是先和中间的比较,如果等于就直接返回,如果小于就在前半部分继续使用二分法进行查找,如果大于则在后半部分继续使用二分法进行查找。

动图演示

62_2.png

详细代码

      // 非递归
    public static boolean binarySearch1(int[] array,int key) {
        int low = 0;
        int high = array.length-1;
        while(low <= high) {
            int middle = low + (high-low)/2;
            if(key==array[middle]) {
                return true;
            }
            if(key>array[middle]) {
                low = middle + 1;
            }
            if(key<array[middle]) {
                high = middle - 1;
            }
        }
        return false;
    }
    // 递归
    public static boolean binarySearch2(int[] array,int key) {
        int low = 0;
        int high = array.length - 1;
        Arrays.sort(array); // 排序
        return Search(array,key,low,high);
    }
    public static boolean Search(int[] array,int key,int low,int high) {
        int mid = low + (high - low)/2;
        if(low>high) {
            return false;
        }
        if(key == array[mid]) {
            return true;
        }
        if(key>array[mid]) {
            return Search(array,key,mid+1,high);
        }
        return Search(array,key,low,mid-1);
    }

文章永久链接:https://tech.souyunku.com/22213

未经允许不得转载:搜云库技术团队 » Java顺序查找、二分查找

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们