《大话数据结构》读书笔记(2):算法

2.4算法的定义
解决特定问题求解步骤的描述,在计算机中表现为指令的而有限序列,并且每条指令表示一个或对各操作
2.5算法的特性
输入、输出、有穷性、确定性和可行性
2.7算法效率的度量方法
2.7.1事后统计法
2.7.1事前分析法
时间取决于算法性能和输入规模
2.8函数的渐进增长
算法时间复杂度随输入规模增大的增大速度
2.9算法的时间复杂度
2.9.1算法时间复杂度的定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度也就是算法的时间度量,记作T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。例如O(1)、O(n)、O(n^2)。
例如,假设列表包含n 个元素。简单查 找需要检查每个元素,因此需要执行n 次操作。使用大O表示法,这个 运行时间为O (n )。单位秒呢?没有——大O表示法指的并非以秒为单位 的速度。大O表示法让你能够比较操作数,它指出了算法运行时间的 增速 。
再例。为检查长度为n 的列表,二分查找需要执行log n 次操 作。使用大O表示法,这个运行时间怎么表示呢?O (log n )。
大O表示法指出了最糟情况下的运行时间。


image.png

2.12算法的空间复杂度:套用时间复杂度的概念。

原地工作:空间复杂度为O(1)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容