数据结构与算法
数据结构,其实是数据元素与对其操作的集合。
1 数据的逻辑结构(集合结构,线性结构,树形结构,图形结构)
2 数据的存储结构(顺序,连接,索引,散列),还有物理结构上的:顺序存储结构,链式存储结构
3 数据的运算
数据结构操组的对象是数据元素,即他们有相同的属性(属性也取决于观察者的角度),它们之间的存在的关系会产生不同的结构,数据元素之间的关系+操作构成了数据类型,对已有的数据类型进行抽象就构成了抽象数据类型(ADT),就是封装了值和操作的模型。
线性表,堆栈,串,树,图是常见的用抽象数据类型定义的结构,查找和排序是常见的算法。
算法,是为了求解一个问题(即数据结构,包括数据元素与对元素的操作)所遵循的、被清楚的指定简单指令的集合。
算法的5大特性:输入,输出,有穷性,确定性,可行性
算法评价:主要看算法的占用空间和时间的增长率,常用时间增长率来判断算法优良,其中包括常数增长O(1),对数增长O(logN),线性增长O(N),指数增长(N^3),判断指数增长时省略前面的常数,如3n^2+10n+2,简化为O(n^2)。