首页 > 其他分享 >辗转相除的时间复杂度

辗转相除的时间复杂度

时间:2022-10-22 15:36:57浏览次数:43  
标签:return log int 复杂度 辗转 相除 second first

\(\gcd(a,b) = \gcd(b,a\%b)\)

这是辗转相除法,也叫欧几里得算法

欧几里得算法的时间复杂度我们认为是 \(O(log n)\) 的。

证法1

设 \(a>b\)

分为两种情况:

① \(a>2b\)

image

发现缩减速度大于等于2倍,问题规模缩小至少一半

② \(a<2b\) 即 \(a>b>\frac{a}{2}\)

考虑算两下,\((a,b)=(b,a\%b)=(a\%b,b\%(a\%b))\)

image

发现辗转两次之后,问题规模也一定至少缩小了一半。

所以 \(\log n \le T \le 2\log n\),忽略常数姑且算为 \(\log n\)

证法2

这个方法更为严谨,用斐波那契数列证明的,还没学会……


最后学会了一个斐波那契数列的快速算法,记录一下

pair<int, int> fib(int n) {
  if (n == 0) return {0, 1};
  auto p = fib(n >> 1);
  int c = p.first * (2 * p.second - p.first);
  int d = p.first * p.first + p.second * p.second;
  if (n & 1)
    return {d, c + d};
  else
    return {c, d};
}

标签:return,log,int,复杂度,辗转,相除,second,first
From: https://www.cnblogs.com/CYLSY/p/16816154.html

相关文章

  • 【数据结构】时间复杂度与空间复杂度概念
    1.时间复杂度1.什么是时间复杂度时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算......
  • 算法复杂度,本机1s用例测试
    本机配置:MacBookPro2019CPU:2.4GHz四核IntelCorei5第一个用例:时间复杂度O(n)//O(n)voidfunction1(longlongn){longlongk=0;for(longlong......
  • 时间复杂度和空间复杂度
    写在前面说实话,我已经学了不少的数据结构了,第一次接触时间和空间复杂度的时候感觉有些不好理解,这篇博客就搁置下来了.这些天感觉自己思路理清楚了.所以开始和大家分享.要......
  • 数据结构—算法的时间复杂度
    1、什么是时间复杂度     一般情况下,算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时......
  • B-神经网络模型复杂度分析
    目录结构一,模型计算量分析二,模型参数量分析三,一些概念四,参考资料前言现阶段的轻量级模型MobileNet/ShuffleNet系列、CSPNet、RepVGG、VoVNet等都必须依赖于于具......
  • 【算法】时间频度与时间复杂度、归并排序、StringBuffer和StringBuilder详解!
    算法中的时间频度与时间复杂度时间频度一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度......
  • Leetcode 844 -- 双指针&&O(1)时间复杂度
    题目描述比较含退格的字符串思路这里主要考虑O(1)空间复杂度的做法。一个字符是否会被删掉,只取决于该字符后面的退格符,而与该字符前面的退格符无关。因此当我们逆......
  • 经典题1-时间和空间复杂度
    1.时间和空间复杂度的概念o(1)>o(n)>o(n^2)>o(logn)>o(nlogn) 前端重时间复杂度轻空间复杂度,因为浏览器够强大题目1,把一个数组旋转K步如:【1,2,3,4,5,6,7,8......
  • 各种排序算法时间复杂度
    各种排序算法比较  各种常用排序算法类别排序方法时间复杂度空间复杂度稳定性复杂性特点最好平均最坏辅助存储 简单 插入排序直接插入O(N)O(N2)O(N2)O(1)稳定简单  希......
  • 算法的时间复杂度、空间复杂度
    前言本文主要记录了数据结构、算法、数据结构与算法的关系以及算法的时间复杂度、空间复杂度。数据结构数据结构是计算机存储、组织数据的方式。算法算法是一系列解决......