美文网首页
对分查找、欧几里得、冥运算

对分查找、欧几里得、冥运算

作者: 90后小伙 | 来源:发表于2018-06-22 10:04 被阅读13次

算法-对分查找(二分查找)C++实现
验证x是否是居中的元素,如果是,则找到答案,如果小于居中元素,那么取左边已排序的子序列,否则取右边已排序的子序列

int binarySearch(const int a[], int x, int n) {
    int low, mid, high;
    
    low = 0;
    high = n-1;
    
    while (low <= high) {
        mid = (low+high)/2;
        
        if (x > a[mid]) {
            low = mid + 1;
        } else if (x < a[mid]) {
            high = mid - 1;
        } else {
            return mid;
        }
    }
    return -1;
}

欧几里得算法
欧几里得算法也叫辗转相除法,是求两个整数最大公约数的算法
当然也可以求最小公倍数
算法实现
其实算法的实现原理就是,有整数a b两个,每次求的一个数字r = a % b,然后把b放到a的位置,把r放到b的位置,递归调用。
结束条件是当 a%b == 0的时候停止。

unsigned int gcd(unsigned int m, unsigned int n) {
    unsigned int temp;
    
    if (m < n) {
        n = m + n;
        m = n - m;
        n = n - m;
    }
    
    while (n > 0) {
        temp = m % n;
        m = n;
        n = temp;
    }
    return m;
}

冥运算
取冥的一半,做递归运算,这样就减少了运行时间

long int the_pow(long int x, unsigned int n) {
    if (n == 0) {
        return 1;
    } else if (n == 1) {
        return x;
    } else if (n%2 == 0) {
        return the_pow(x*x, n/2);
    } else {
        return the_pow(x*x, n/2)*x;
    }
}

相关文章

  • 对分查找、欧几里得、冥运算

    算法-对分查找(二分查找)C++实现验证x是否是居中的元素,如果是,则找到答案,如果小于居中元素,那么取左边已排序...

  • 对分查找

    需求:给定一个整数X,求其在一个A0, A1,..., AN-1,后者已经预先排序并在内存中,求使得Ai = X的...

  • 算法 | 对分查找

    【算法思想】 首先将关键字与有序数组内处于中间位置的元素进行比较,如果中间位置上的元素内的数值与查找键不同,根据数...

  • 数据结构课程 第十二周 查找

    查找基本概念 线性表的查找 顺序查找(线性查找) 折半查找(二分或对分查找) 表中元素是有序的!(仅限于顺序存储结...

  • 两个数的最大公约数

    1、遍历查找最大公约数 2、欧几里得算法(递归调用) 从顶至下

  • 扩展欧几里得算法

    欧几里得算法 文中用 表示求模运算, 表示整除, 比如 欧几里德算法(称辗转相除法),用于计算两个整数a, b的...

  • JIRA JQL

    1、WAS 运算符:可以查找当前或曾经的一个状态 WAS运算符包括Was,Was in,Was not,Was ...

  • 查找 --- 斐波那契

    1. 引子 二分查找是进行加法与除法的运算 mid = (low +high)/2插值查找是进行四则运算的 mid...

  • 扩展欧几里得算法

    资料 欧几里得算法 扩展欧几里得算法 扩展欧几里得算法应用 欧几里得算法 欧几里得算法用于求两个数的最大公约数 证...

  • 查找算法

    查找算法 查找是在大量的信息中寻找一个特定的元素,在计算机当中,查找是常用的基本运算。查找定义: 根据给定的某个值...

网友评论

      本文标题:对分查找、欧几里得、冥运算

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