美文网首页
第一章:算法简介

第一章:算法简介

作者: 杨殿生 | 来源:发表于2018-10-08 09:37 被阅读0次

二分查找

间复杂度 logN
列表必须有序

public class BinarySearch {

    //二分查找,查找的数组必须有序
    public static int rank(int[] a,int key) {
        int lo = 0;
        int hi = a.length - 1;
        while(lo <= hi){
            int mid = lo + (hi - lo)/2;
            if (a[mid] > key) {
                hi = mid - 1;
            } else if (a[mid] < key ){
                lo = mid + 1;
            } else {
                return mid;
            }
        }
        return -1;
    }


    //二分查找递归写法
    public static int rank2(int[] a,int key){
        return rank2(a,key,0,a.length - 1);
    }

    public static int rank2(int[] a,int key,int lo,int hi){
        if (lo > hi)
            return -1;
        int mid = lo + (hi - lo)/2;
        if (key > a[mid]){
            return rank2(a,key,mid + 1,hi);
        } else if (key < a[mid]){
            return rank2(a,key,lo,mid - 1);
        } else {
            return mid;
        }
    }
}

相关文章

  • python算法-1.简介/2.选择排序/3.递归、栈

    第一章、 算法简介 一些常见的大O运行时间 》 O(log n),也叫对数时间,这样的算法包括二分查找。》 O(...

  • 第1章 算法简介

    第一章 算法简介 学习目标 为学习本书剩余章节打下坚实的基础; 编写二分搜索算法的代码; 学会使用大O​记号来分析...

  • 第一章:算法简介

    二分查找 间复杂度 logN列表必须有序

  • 笔记:《图解算法》(已完结)

    第一章 算法简介 1.1引言 算法是一组完成任务的指令。 1.2二分查找 二分查找是一种算法,其输入是一个有序的元...

  • <<算法图解>>笔记

    第一章 算法简介 按从快到慢的顺序列出5种大O运行时间: O(log n),也叫对数时间,这样的算法包括二分查找。...

  • 2018-10-22算法图解阅读笔记

    阅读本书起源于左耳朵耗子的《左耳听风》 收益颇多,感谢老一辈程序员的无私分享。感谢~ 第一章 算法简介 应用算法与...

  • 算法简介

    程序和算法的时间复杂度 1.一个程序或算法的时间效率,也称“时间复杂度”,有时简称“复杂度” 2.复杂度常用大写字...

  • 算法简介

    机器学习的工作:前期的数据预处理,后期的参数选择归一化范围的选取,降维算法的选取,最佳参数选取的算法 线性回归 拟...

  • 算法图解 (一)

    第一章 算法简介 算法是一组完成任务的指令。 二分查找 二分搜索,也称折半搜索、对数搜索,是一种在有序数组中查找某...

  • 十大数据挖掘算法——C4.5

    一、算法简介

网友评论

      本文标题:第一章:算法简介

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