欢迎您的访问
专注于Java技术系列文章的Java技术分享网站
精选技术专栏

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/?p=22213

赞(76) 打赏



版权归原创作者所有,任何形式转载请联系作者;搜云库技术团队 » Java顺序查找、二分查找

评论 抢沙发

一个专注于Java技术系列文章的技术分享网站

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏