美文网首页蓝桥杯
算法基础课 2.5 二分查找与顺序查找

算法基础课 2.5 二分查找与顺序查找

作者: sakura579 | 来源:发表于2020-03-03 12:18 被阅读0次

二分查找 复杂度 log2 N
顺序查找 复杂度 N

package study;

public class sort {
    public static void main(String[] args) {
        int [] x= new int [100000000];
        for(int i=0;i<x.length;i++) {
            x[i] = i+1;
        }
        int target = 100000000;
        long now = System.currentTimeMillis();
        int index = binarySearch(x,x.length-1,0,target);
        duration(now);
        System.out.println(target+"所在位置"+index);
        now = System.currentTimeMillis();
        index =search(x,target);
        duration(now);
        System.out.println(target+"所在位置"+index);
    }
    
    /**
     * 二分查找
     * @param arr
     * @param hight
     * @param low
     * @param key
     * @return
     */
    public static int binarySearch(int[] arr,int hight,int low,
                                        int key) {
        while(low<=hight) {
            int mid = low + ((hight-low)>>1);//防止溢出,移位也更高效。同时每次循环都需要更新
            int midVal = arr[mid];
            
            if(midVal>key) {
                hight = mid-1;
            }else if(midVal<key){
                low = mid +1;
            }else {
                return mid;
            }
        }
        return -(low + 1);
        
    }
    
    /**
     * 顺序查找
     * @param arr
     * @param key
     * @return
     */
    public static int search(int[] arr,int key) {
        for(int i=0;i<arr.length;i++) {
            if(arr[i]==key) {
                return i;
            }
        }
        return -1;
    }
    
    public static void duration(long x) {
        System.out.println(System.currentTimeMillis()-x+"ms");
    }
}

输出结果

0ms
100000000所在位置99999999
34ms
100000000所在位置99999999

相关文章

  • 算法

    一.算法基础--算法的特性 二.算法基础--算法的复杂度 三.顺序查找和二分查找 顺序查找 二分查找(前提是有序的...

  • 算法基础课 2.5 二分查找与顺序查找

    二分查找 复杂度 log2 N顺序查找 复杂度 N 输出结果

  • 排序查找c++

    排序算法 选择排序 顺序查找 二分查找

  • 二分查找算法

    一、二分查找算法 二分查找算法又称为折半查找算法,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序...

  • PHP经典算法题

    PHP学习之路---算法题 1.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象...

  • day13

    查找算法 顺序查找 二分查找 差值查找 斐波那契查找 二分查找 前提数组必须是有序的。 升级 Interpolat...

  • 查找算法

    三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表

  • 基本算法

    冒泡算法 选择排序 插入排序 顺序查找 二分查找

  • 查找算法

    查找算法 1顺序查找 2二分查找 2.1二分查找思路分析 2.2代码实现 3插值查找 3.1插值查找原理介绍: ​...

  • PHP算法

    PHP算法 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组二...

网友评论

    本文标题:算法基础课 2.5 二分查找与顺序查找

    本文链接:https://www.haomeiwen.com/subject/sogqlhtx.html