数据结构:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
数据结构分为逻辑结构和物理结构。
1.逻辑结构:数据对象中数据元素之间的相互关系
a.集合结构,集合结构中的数据元素除了同属一个集合外,之间没有其他关系
b.线性结构,线性结构中的数据元素之间是一对一的关系
c.树形结构,树形结构中的数据元素之间存在的一对多的层次关系
d.图形结构,多对多的关系2.物理结构:数据的逻辑机构在计算机中的存储形式,实际上研究的就是如何把数据元素存储到计算机的存储器中,
存储结构形式有两种:顺序存储和链式存储
a.顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的
b.链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。因此需要通过一个指针存储数据元素的地址,通过地址就可以找到相关数据元素的位置算法:指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制
算法特征:
1.输入:算法具有0个或多个输入
2.输出:算法至少要有1个或多个输出
3.有穷性:算法在执行有限的步骤之后,自动结束而不会无限循环,并且每一个步骤在可接受的时间内完成
4.确定性:算法的每一个步骤都有确定的含义,不会出现二义性
5.可行性:算法的每一步都必须是可行的,也就是说每一步都能够通过有限次数完成
算法效率:
1.时间复杂度:随着规模n的增大,算法执行时间的增长率和函数f(n)的结果的增长率相同。
一般情况下,随着输入规模n的增大,f(n)增长最慢的算法为最优算法
常见时间复杂度
a.常数阶 O(1)
b.线性阶 O(n)
c.平方阶 O(n^2)
d.对数阶 O(logn)
e.nlogn阶 O(nlogn)
f.立方阶 O(n^3)
g.指数阶 O(2^n)
以上所消耗时间依次为:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) O(n^3) < O(2^n) <O(n!) < O(n^n)
2.空间复杂度:通过计算算法所需的存储空间实现。