这周将正式开始数据结构的学习!!
数据结构:
1.定义:是相互之间存在一种或多种特定关系的数据元素的集合。
2.分类:逻辑结构 指数据对象中数据元素之间的相互关系。
物理逻辑 指数据的逻辑结构在计算机中的储存形式,又叫存储结构。
逻辑结构分类
(a)集合结构:其中的数据元素除了都属于一个集合外,没有其他关系。
(b)线性结构:其中的数据元素之间是一对一的关系。
(c)树形结构:其中的数据元素之间存在一对多的层次关系。
(d)图形结构(网状结构):其中的数据元素是多对多的关系。
注意 (1)将每一个数据元素看成一个结点,用圆圈表示。
(2)元素之间的逻辑关系用结点之间的连线表示。如果这个关系是有方向的,那么用 带箭头的连线表示。
物理结构类
(a)顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系 是一致的。【按顺序依次摆放】
优点:随机访问。
缺点:大小固定,不易插入删除。
(b)链式存储结构:把数据元素放在任意的存储单元里,这组存储单元可以是连续的,也可以是 不连续的。
优点:灵活,插入删除效率高。
缺点:不能随机访问。
(c)索引存储结构:为了加速检索而创建的一种存储结构。
优点:对顺序查找的一种改进,查找效率高。
缺点:需额外空间存储索引。
(d)散列存储结构:又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对 应关系的查找技术。
优点:查找基于数据本身即可找到,查找效率高,存取效率高。
缺点:存取随机,不便于顺序查找。
数据类型:
1.分类: 原子类型 是不可以在分解的基本类型,包括整型、实型、字符型等。
结构类型 由若干个类型组合而成,是可以再分解,例如:整形数组是由若干个整型 数据组成的。
稍微了解了一下算法时间复杂度和空间复杂度。
算法时间复杂度
(1)含义:也就是算法的时间量度,时间开销与问题规模n的关系 【关键步骤的执行次数】
算法的时间复杂度表示:用大写的 O 来体现算法时间复杂度如O(f(n)),称之为 大 O记数法。(采取高阶表示法)
(2)所耗时间从小到大依次是:
算法空间复杂度
(1)通过计算算法所需的存储空间实现。
(2)计算公式:S(n)=O(f(n))【n为问题的规模,f(n)为语句关于n所占存储空间的函数】
(3)注意:所需的存储空间指的是一个算法在运行过程中的临时占用存储空间。
(4)几种情况:
常量空间 当算法的存储空间大小固定,和输入规模没有直接的关系时,空间复杂度记作 O(1)。
线性空间 当算法分配的空间是一个线性的集合(如数组),并且集合大小和输入规模 n 成正比时,空间复杂度记作 O(n)。
二维空间 如果是二维数组且传入n个数据,那么这个二维数组的时间复杂度就是O(N^2)。
递归空间 递归算法的空间复杂度=每次递归的空间复杂度*递归深度
复杂度:通常情况下,“复杂度”指时间复杂度。
希望大家通过此篇文章有一定的收获!! *^_^*