2024年5月11日 一稿
2024年5月13日 二稿
2024年5月27日 三稿
2024年6月 9日 四稿
2024年7月31
程序 = 数据结构 + 算法
按照视点的不同,可以把数据结构分为 逻辑结构 和 物理结构:
基本的目标就是将数据及其逻辑关系存储到计算机的内存中
数据元素+数据项
逻辑结构
集合
线性结构
树形结构
图结构
物理结构(存储结构)
顺序存储
链式存储
索引存储
散列存储
数据运算
算法
时间复杂度
我们该如何估计程序运行时间呢,我们通常会估计算法的操作单元数量,来代表程序消耗的时间, 这里我们默认CPU的每个单元运行消耗的时间都是相同的。
假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示
随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时间复杂度,记为 O(f(n))
算法导论给出的解释:大O用来表示上界的,当用它作为算法的最坏情况运行时间的上界,就是对任意数据输入的运行时间的上界。
注意 加法规则和乘法规则
逐步递增
嵌套循环
指数递增
空间复杂度