这里简单记录自己数据结构的学习(肤浅的认识_解,析,思)
绪论
解
数据:生活中能够用到的,以及能够被人们用来分析某一特征趋势的名词;
计算机程序所需要的“原料”,也即是计算机操作对象的原料。
数据元素:类似于集合中元素的概念,如果定义一个很大的数据集为一个集
合,那么其中构成这个庞大数据的数据子元就是其数据元素。
数据对象:性质相同数据元素的集合,相当于是数据的一个子集,当然我的
理解也可以是几个子集的交集,真子集。
数据结构:相互之间存在一种或多种特定关系的数据元素的集合,结构决定
性质,这种结构存在于数据元素之间的关系肯定是很重要的,这一门课程的
学习也是围绕它展开的。
这里以后做下面四种结构的学习,(1)集合,应该是最基本最简单的从属关
系;(2)线性结构,一对一关系;(3)树形结构,一对多的关系;(4)图
状结构,多对多的关系。
数据结构可定义为一个二元组:Data Structure = (D,S)
抽象数据类型可定义为一个三元组:(D,S,P)
顺序映像(顺序存储结构):元素在存储器中的相对位置表示的数据元素之间
的逻辑关系(其中包含C常量为隐藏值);
非顺序映像(链式存储结构):借助指针(作为附加信息)来表示数据之间的
逻辑关系。
常见函数结果状态代码
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
析
算法,对特定问题步骤的描述,有限序列的操作
时间复杂度,T(n) = O(f(n))
抬个栗子,O(1),O(n),O(n²)分别为常量阶,线性阶,平方阶。
由此我们可以清楚,这个是一个叠加的过程,类似于重复操作的过程,这
也就是频度。
我们不由想到C语言中的递推,这是我们观察分析得出的一个以数学表达式
为工具的规律,由特殊推一般。而这里我们就要去找的是基准情形,而对时
间复杂度,我们找的是表达式中最高次数的数值。
思
综上所述,递归有几个基本法则:
1.基准情形 不需要递归表达式就能解出;
2.不断推进 每次的递归调用,都需要朝着基础情形的方向推进;
3.设计法则 递归无措能够运行;
4.合成效益法则 解决同一个实例,不应该去在不同的递归调用做
重复性工作(菲波拉契数)。