算法(3)
来源:互联网 发布:安卓6.0源码编译教程 编辑:程序博客网 时间:2024/05/17 09:12
上两篇:
算法(1)
算法(2)
一、常见的时间复杂度
二、最坏情况和平均情况
- 最坏情况运行时间是一种保证,那就是运行时间将不会再坏了
- 平均时间是所有情况中最有意义的,因为它是期望的运行时间。
- 对算法的分析,一种方法是计算所有情况的平均值,这种时间复杂度的计算方法称为时间复杂度。另一种方法是计算最坏情况下的时间复杂度,这种方法称为最坏时间时间复杂度。
一般没有特殊说明的情况下,都是指最坏时间复杂度。
三、算法空间复杂度
- 算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:S(n) = O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数.
一般情况下,一个程序在机器上执行时,除了需要存储程序本身的指令、常数、输入数据外,还需要存储对数据操作的存储单元。
通常,我们都使用“时间复杂度”来指运行时间的需求,使用“空间复杂度”指空间需求。当不用限定词地使用“复杂度”时,通常都是指时间复杂度。
结尾语:
很多学生,学了四年计算机专业,很多程序员,做了很长时间的编程工作,却始终都弄不明白算法的时间复杂度的估算,这是很可悲的一件事。因为弄不清楚,所以也就从不深究自己的代码是否效率低下,是不是可以通过优化让计算机更加快速高效。
阅读全文
0 0
- 贪心算法(3)哈弗曼编码算法
- 最短路算法(3)- Dijkstral算法
- 机器学习算法(3:决策树算法)
- bandit算法(3)--UCB算法
- 算法、排序(3)
- camshift算法(3)
- dsa算法(3)
- 算法(3)
- 滤波算法(3)
- java算法(3)
- 贪心算法(3)
- 算法(3)
- [算法3]Kmeans算法
- 经典算法(3):动态时间规整算法(DTW)
- CamShift算法,OpenCV实现(3):CamShift算法 (转载)
- CamShift算法,OpenCV实现(3):CamShift算法 (转载)
- 算法导论第 3 版之多线程算法(二)
- 算法导论第 3 版之多线程算法(三)
- 算法(1)
- Eclipse自动生成构造方法
- PCM是什么
- 运营思略:APP线上运营方案 | 新媒体篇
- Java常见错误整理(一)
- 算法(3)
- “中国已建成世界上最大的视频监控网”背后的问题
- 基于java的URP教务系统爬虫实现
- 三十四、面向对象进阶
- 数据库
- ruby
- Android8.0 AlarmManagerService
- springboot学习笔记(一) Spring boot Hello Word!
- 从零开始自己的架构(1)