一、数据结构的基本概念
传统上,我们把数据结构分为逻辑结构和物理结构:
逻辑结构:数据对象中数据元素之间的相互关系。
物理结构:数据的逻辑结构在计算机中的存储形式。
四大逻辑结构:集合、线性结构、树形结构、图状结构或网状结构。
四大物理存储结构:顺序存储、链式存储、索引存储、散列存储。
二、算法和算法评价
2.1 算法的基本概念
算法是对特定问题求解步骤的一种描述。
算法的五个基本特征:
有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。
确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。相同的输入只能有唯一的输出结果。
可行性:算法的每一步都必须是可行的。
输入:算法具有零个或多个输入。
输出:算法至少有一个或多个输出。
2.2 算法效率的度量
算法效率的度量是通过时间复杂度和空间复杂度来描述的。
时间复杂度是指执行算法所需要的计算工作量,记为问题规模n的函数T(n)。
一般考虑在最坏情况下的时间复杂度,以保证算法的运行时间不会比它更长。
时间复杂性的计算规则:
a) 加法规则
T(n) = T1(n) + T2(n) = O( f(n) ) + O( g(n) ) = O( max( f(n), g(n) ) )
b) 乘法规则
T(n) = T1(n) x T2(n) = O( f(n) ) x O( g(n) ) = O( f(n) x g(n) )
常见的渐进时间复杂度有:
![](https://img.haomeiwen.com/i10538113/f75a0ac97fb2ead0.png)
空间复杂度是指执行这个算法所需要的内存空间,记为S(n)。
辅助空间一般指除输入和程序指令之外,为实现计算所需信息的额外空间。
算法原地工作是指算法所需的辅助空间是常量,即O(1)。
网友评论