计算一个算法的时间复杂度
2014-04-23 11:16
363 查看
观察一个算法的时间复杂度,有效的思考方式是:看问题的规模随算法的推进不断递减的程度。
下面以一个求2的n次方的简单程序为例:
优化后:
下面以一个求2的n次方的简单程序为例:
long long power2(int n) long long poe =1; while(0< n --) pow <<= 1; return pow; }//O(n)问题的规模,每次减少1,要执行n次,时间复杂度为O(n)。
优化后:
long long sqr(long long a) {return a*a} long long power2(int n){ if (n==0) return 1; return (n & 1) ? sqr(power2(n >> 1)) <<1 : sqr(power2(n >>1)); }每执行一次递归,n就要除以2,所以时间复杂度为O(logn)
相关文章推荐
- 如何计算一个算法的时间复杂度
- 如何计算一个算法的时间复杂度
- 如何计算一个算法的时间复杂度
- 如何计算一个算法的时间复杂度和空间复杂度
- 《数据结构》2.10设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)
- 算法的时间复杂度计算
- 一串首尾相连的珠子(m 个),有N 种颜色(N<=10),设计一个算法,取出其中一段,要求包含所有N 中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
- 一串首尾相连的珠子(m 个),有N 种颜色(N<=10),设计一个算法,取出其中一段,要求包含所有N 中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
- 算法效率的度量方法,算法时间复杂度、空间复杂度计算
- 试设计一个算法,将数组A(0..n-1)中的元素循环右移k位,并要求空间复杂度为O(1),时间复杂度为O(n)。
- 算法的时间复杂度(计算实例)
- 【数据结构与算法】时间复杂度的计算
- 算法的时间复杂度(计算实例)
- 【算法与数据结构】关于代码运行时间复杂度的计算方法
- 你真的了解位运算?用了这个运算符,算法的时间复杂度竟然降了一个数量级!
- 算法时间复杂度的计算------转
- 简单算法学习之时间复杂度的计算
- 算法时间复杂度的计算
- 1分钟学会计算算法的时间复杂度
- 算法的时间复杂度(计算实例)