基础算法(零)---算法运行时间
来源:互联网 发布:展示网站cms 编辑:程序博客网 时间:2024/06/08 16:29
- 运行时间分析的基本策略是从内部(或最深层部分)向外展开工作的
- 如果有方法调用,那么首先分析这些调用
- 如果有递归过程那么存在几种选择
典型的增长率:
法则一:for循环:
一个foir循环的运行时间至多是该for循环内部那些语句(包括测试)的运行时间乘以迭代次数
法则二:嵌套的for循环:
从里向外分析这些循环
在一组嵌套循环内部的一条语句总的运行时间为该语句的运行时间乘以该组所有的for循环的大小的乘积
程序片段 0(N*N)
for(i = 0; i < n; i ++){ for(j = 0; j < n; j ++){ k++; }}
法则三:顺序语句:
将各个语句的运行时间求和即可(这意味着其中的最大值就是所得的运行时间)
程序片段 O(N)
和 0(N*N)
,总量为 0(N*N)
for( i = 0; i < n; i ++){ a[i] = 0;}for( i = 0; i < n; i ++){ for( j = 0; j < n; j ++){ a[i] += a[j] + i + j; }}
法则四:if/else语句:
一个if/else语句的运行时间从不超过判断的运行时间再加上S1和S2中运行时间长的那个的总运行时间【有些情况下这样估计会过高,但绝不会过低】
if(condition) S1else S2
运行时间中的对数:
一般法则:
如果一个算法用常数时间O(1)将问题的大小削减为其一部分(通常1/2),那么该算法就是O(logN)
如果使用常数时间只是把问题减少一个常数的数量(如将问题减少1) ,那么该算法就是O(N)
1. 折半查找
2. 欧几里得算法(计算最大公因数)
public static long gcd(long m, long n) { while (n != 0) { long rem = m % n; m = n; n = rem; } return m; }
3. 幂运算
1 0
- 基础算法(零)---算法运行时间
- 基础算法(零)---递归
- 零基础学算法
- 算法--算法运行时间比较
- 零基础学贪心算法
- 算法运行时间
- 算法运行时间分析
- 算法运行时间
- 算法运行时间
- 算法运行时间
- 算法时间复杂度基础
- 基础算法(零)---距离和相似性度量
- 数据结构中运行时间算法
- 计算程序算法运行时间
- 算法运行时间的比较
- 算法运行时间中的对数
- 转《零基础学习深度学习算法》
- 零基础学并查集算法
- HDU 1003 Max Sum
- 我的老公是IT男
- 数据库MySQL
- 解决java.lang.IllegalStateException: Failed to load ApplicationContext 问题
- redirect跳转不能访问web-inf下的jsp
- 基础算法(零)---算法运行时间
- nginx+lua搭建文件上传下载服务
- HDU 2110——Crisis of HDU
- Mybiatis 配置文件
- Myeclipse 8.5 下 iBATIS 的代码生成插件 ibator安装
- 手把手教你写Sublime中的Snippet
- css如何清除浮动(二)
- Java 判断一个时间段(YYYY-MM-DD)是否在一个区间
- 漫步数理统计十三——特殊的期望