小甲鱼《数据结构与算法》学习笔记。
数据结构
数据结构包括逻辑结构和物理结构。
逻辑结构
逻辑结构指数据对象中数据元素间的相互关系。包括集合结构、线性结构、树形结构和图形结构。
集合结构:元素同属一个集合,元素间没有其他关系。
线性结构:元素间一对一的关系。
树形结构:元素间一对多的关系。
图形结构:元素间多对多的关系。
物理结构
物理结构指数据的逻辑结构在计算机中的存储形式。包括顺序存储和链式存储。
顺序存储:地址连续,逻辑关系和物理关系一致。例如数组。
链式存储:数据+指针。地址可连续或不连续,任意存储单元。指针存放数据元素的地址,通过地址找到关联数据的位置。
算法
算法是解决特定问题的求解步骤的描述,是指令的有限序列。
特性:输入、输出、有穷性、确定性、可行性
0个或多个输入
1个或多个输出
步骤有限且每个步骤再可接受的时间完成,自动结束,不会无限循环下去。
每个步骤有确定含义,不包含二义性。一定条件下只有一条执行路径,相同的输入,输出相同且唯一。
每一步可行,执行有限次数完成。
算法设计
正确性:输入输出加工处理无歧义。无语法错误,合法输入产出满足要求的输出,非法输入产出满足规格的说明,如用户说明,故意刁难的测试输入产出满足要求的输出。
可读性
健壮性:非法刁难的用例,无异常、崩溃、莫名其妙的结果。
时间效率高,存储量低。