数据结构和算法学习笔记-3
来源:互联网 发布:java十进制转字中文 编辑:程序博客网 时间:2024/05/17 16:15
时间复杂度和空间复杂度:
一、时间复杂度
T(n) = O(f(n))
随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称之为算法的渐进时间复杂度,即时间复杂度,其中f(n)是问题n的函数
随着问题规模n的增大,T(n)增长最慢的算法为最优算法
时间复杂度T(n)的求法公式
1、用常数1取代运行中的所有加法常数
2、修改后,只保留最高阶项
3、如果最高阶项存在且不是1,则去除与这个项相乘的常数
常见的时间复杂度:
时间复杂度增长曲线
时间复杂度比较
时间复杂度的两种情况:
平均时间:算法运行的平均运行时间
最坏运行时间:算法运行的最坏时间,在应用中最重要的要求,我们所提及的就是这种运行时间
二、空间复杂度
一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1)。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。
某种意义上可以用空间换时间
比如判断某年是否为闰年,可以使用算法判断。也可以事先定义1个数组,数组下标为年份,为闰年的值为1,反之为0。
0 0
- 数据结构和算法学习笔记-3
- 数据结构和算法学习笔记
- 算法和数据结构学习笔记
- 数据结构和算法学习笔记
- 数据结构和算法学习笔记-1
- 数据结构和算法学习笔记-2
- 数据结构和算法分析学习笔记
- 学习笔记1 数据结构和算法绪论
- 数据结构和算法笔记
- 数据结构和算法 笔记
- 数据结构和算法笔记
- java数据结构和算法学习杂感和笔记
- 学习数据结构和算法
- 数据结构和算法学习
- 《Java数据结构和算法》学习笔记(3)——栈和队列
- [算法学习笔记]数据结构之栈和队列
- 《数据结构与算法》学习笔记13 单链表和双端链表
- 数据结构和算法学习笔记——图论
- SQL - NOT NULL约束
- iOS 隐藏状态栏
- js的dom对象
- hd1232 修路最少(并查集问题)
- VS字符集设置
- 数据结构和算法学习笔记-3
- 用Apache CouchDB存储医疗可视化数据
- C++:Regex正则表达式
- Deep Learning笔记1
- 在一个js文件中引用另一js文件(chrome插件亦适用)
- 欢迎使用CSDN-markdown编辑器
- font-size属性的继承
- 从头到尾彻底理解傅里叶变换算法、上
- HTMLParser介绍