《大话数据结构》读书笔记(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表示法指出了最糟情况下的运行时间。


《大话数据结构》读书笔记(2):算法_第1张图片
image.png

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

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

你可能感兴趣的:(《大话数据结构》读书笔记(2):算法)