对分查找、欧几里得算法求最大公约数

简介: 对分查找、欧几里得算法求最大公约数

对分查找

  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(A[mid] < x)
           low = mid + 1;
       else
          if(A[mid] > x)
          high = mid - 1;
       else
          return mid;
    }
    return NotFound;
 }

欧几里得算法求最大公因数:

  unsigned Gcd(unsigned int M, unsigned int N)
  {
     unsigned int Rem;
     while(N > 0)
     {
        Rem = M % N;
        M = N;
        N = Rem;
     }
    return M;
 }


相关文章
|
7月前
|
算法
求最大公约数和最小公倍数的算法
求最大公约数和最小公倍数的算法
86 0
|
4月前
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
|
7月前
|
人工智能 算法 C++
c++算法学习笔记 (18) 约数
c++算法学习笔记 (18) 约数
|
7月前
|
算法 数据安全/隐私保护
什么是扩展欧几里得算法?
【5月更文挑战第13天】什么是扩展欧几里得算法?
119 3
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
|
7月前
|
算法 Python
Python欧几里得算法找最大公约数
Python欧几里得算法找最大公约数
82 0
|
7月前
|
算法 搜索推荐 程序员
C语言第二十二练——扩展欧几里得算法
C语言第二十二练——扩展欧几里得算法
71 0
|
7月前
|
算法 Python
最大公约数算法
最大公约数算法
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
71 0
|
算法 搜索推荐 程序员
欧几里得算法
欧几里得算法(Euclidean algorithm)是一种计算两个数的最大公约数(Greatest Common Divisor,简称 GCD)的算法。欧几里得算法的基本思想是通过辗转相除的方式,将两个数逐步缩小,直到它们的公约数为止。欧几里得算法的时间复杂度为 O(log n)。
240 1