数据结构与算法概念简介
四大逻辑结构
集合结构:散乱
线性结构: 一对一
树形结构: 一对多
图形结构: 多对多
两大物理结构
顺序储存:连续,物理和逻辑保持一致,如对号入座。可以随机存取,也可以顺序存取,适合查找这样的简单操作。
链式储存: 时常变化,需要指针,如排队叫号。只能用顺序存取,适合删除,插入这样大变化的操作。
算法的特征:输入/输出,有穷性,确定性,可行性
算法的要求:正确性,可读性,健壮性,时间效率高/存储量低
效率度量方法:
事后估算:不推荐
事前分析:一般用法。从以下的几个方面去看:算法采用的策略方案,编译产生的代码质量,问题的输入规模,机器执行指令的速度。
时间复杂度:一般情况下,我们所说的复杂度。是考虑最坏的运行时间,下一节推导大O阶方法。
空间复杂度: 数据储存占据的空间。
举例子:顺序储存时间复杂度高,空间复杂度小。而链式储存则正好相反。
顺序存储时,逻辑与物理 一 一对应,内存中可用存储单元的地址必须是连续的。
优点:存储密度大,存储空间利用率高。
缺点:插入或删除元素时不方便。
链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,分别储存结点值和指针。
优点:插入或删除元素时很方便,使用灵活。
缺点:存储密度小,存储空间利用率低。