美文网首页
欧几里德与二分搜索

欧几里德与二分搜索

作者: 小王ovo | 来源:发表于2021-07-19 11:29 被阅读0次
public class test1 {
    /**
     * 欧几里徳公式,求最大公约数
     */
    public static int gcd(int p,int q){
        if (q==0){
            return p;
        }
        int r=p%q;
        return gcd(q,r);
    }

    /**
     * 二分
     * 
     * @param key 
     * @param array
     * @return
     */
    public static int rank(int key,int[] array){
        //搜索区域的前置坐标
        int lo=0;
        //最大的下标=数组长度-1
        int hi=array.length-1;
        while (lo<=hi){
            //开始二分
            int mid=lo+(hi-lo)/2;
            if (key>array[mid]){
                hi=mid-1;
            }else if (key<array[mid]){
                lo=mid+1;
            }else {
                return mid;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int gcd = gcd(198, 20);
        System.out.println(gcd);

        int[] array={10,33,434,545,654,232};
        int rank = rank(5, array);
        if (rank==-1){
            System.out.println("没有");
        }else {
            System.out.println(rank);
        }
    }
}

相关文章

  • 欧几里德与二分搜索

  • Algorithm进阶计划 -- 二分搜索

    二分搜索二分搜索模板二分搜索运用 1. 二分搜索模板 二分搜索(二分查找)也称折半查找(Binary Search...

  • AVL 树

    一:什么是 AVL 树? 在我的上一篇文章《二分搜索树与二分查找法》中,详细介绍了二分搜索树这种数据结构。二分搜索...

  • 欧几里德与扩展欧几里德算法

    欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,...

  • 算法-二分搜索算法

    算法:二分搜索算法(折半查找算法)时间复杂度: 二分搜索算法概述 二分搜索算法伪代码 二分搜索算法实现 二分搜索算...

  • 搜索算法

    顺序搜索 二分搜索

  • 二分搜索(Binary_Search)

    1. 二分搜索是什么? 二分搜索(英语:binary search),也叫折半搜索(英语:half-interva...

  • 手敲数据结构——使用二分搜索树实现Map

    关于实现二分搜索树,可以看前面的文章 手敲数据结构——二分搜索树 Map接口 实现代码 测试用例 统计《傲慢与偏见...

  • 最大公约数

    . 欧几里德算法和扩展欧几里德算法 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。...

  • 二分算法-LeetCode 69

    二分算法-LeetCode 69 二分算法 二分算法模板, 二分搜索即搜索一个数,如果存在,返回其索引,否则返回-...

网友评论

      本文标题:欧几里德与二分搜索

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