
数据结构与算法分析 二、算法分析(运行时间计算)
发布日期:2021-05-06 23:39:09
浏览次数:31
分类:精选文章
本文共 530 字,大约阅读时间需要 1 分钟。
运行时间计算
大O运行时间
大O运行时间是上界
一般准则
●for循环:
for循环的运行时间是for循环内语句的运行时间乘以迭代次数 ●嵌套的for循环: 从里向外分析 ●顺序语句: 各个语句的运行时间求和 ●IF/ELSE语句if() S1else S2
不超过判断+S1和S2运行时间长者的总的运行时间
递归
●情况一:实质上是for循环,所以为O(N)
int fun(int n){ if(n <= 1) return 1; else return n * fun(n - 1);}
●情况二:难以转为循环结构
int fun(int x){ if(x <= 1) return 1; return fun(x-1) + fun(x-2);}
假设运行时间为T(N),则T(N) = T(N - 1) + T(N - 2) + 2,而Fib(N) = Fib(N - 1) + Fib(N - 2),Fib以指数速度增长,所以T(N)也以指数增长,这是最坏的情况。因为该程序做了大量的多余工作。
对数运行时间
如果一个算法以常数时间将问题的大小削减为其一部分(通常为1/2),那么该算法就是O(logN)。如二分查找
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月19日 08时39分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
BST中某一层的所有节点(宽度优先搜索)
2019-03-04
Dijkstra算法的总结
2019-03-04
C语言的运算符和表达式
2019-03-04
Vue实现选项卡功能
2019-03-04
vue中接收后台的图片验证码并显示
2019-03-04
Vue入门学习笔记(1)
2019-03-04
趣谈win10常用快捷键
2019-03-04
数学建模更新12(数学线性规划模型1)
2019-03-04
Android,SharedPreferences的使用
2019-03-04
两款用于检测内存泄漏的软件
2019-03-04
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
2019-03-04
OSI 7 层网络模型
2019-03-05
JDK 内置的多线程协作工具类的使用场景
2019-03-05
Java 中哪些对象可以获取类对象
2019-03-05
linux 的 sleep 命令
2019-03-05
11.2.6 时间值的小数秒
2019-03-05