【数据结构】自学第一章

数据结构处理对象:

数据  是事物的符号,理解为任意一个事物

数据项 是处理的最小单位,若干数据项组成 数据元素,若干相同性质的数据元素组成 数据对象。有点像 类和对象。

数据结构 就是数据元素的关系集合。

数据结构总体分为4个结构:

集合(一堆数据);

线性结构(数据元素之间一一对应,y=ax+b);

树形结构(数据元素之间一对多对应如y=\left\{\begin{matrix} x+1\\ x+2\\ ...\\ x+n \end{matrix}\right.);

图形结构(数据元素之间多对多)。

算法

算法就是处理某特定问题的求解步骤。

类似于小学的应用题如,动物园有m只动物,一共有n只脚,动物有鸡和兔子,求鸡和兔子的数量分别是多少。

那么算法就是,2x+4y=n,x+y=m,联立求得x 和 y。这就是算法。

一个正确的算法具备有穷性、确定性、可行性、输入和输出的特性,缺少一个,这个算法都是不完善的。

所有的算法都有其效率,衡量一个算法的优劣,就是去看其效率的高低

而效率的评判就从时间和空间两个角度去考量。

时间复杂度:T(n)=O(f(n)),其中n是问题的规模,f(n)是问题的执行函数,而算法执行时间的增长率和f(n)的增长率相同

空间复杂度:S(n)=O(f(n)),其中n是问题的规模,所有的数据都在内存中计算,空间就是算法执行占用的空间

线性表

线性表 是n个数据元素的有限序列。比如简单的26个英文字母(A,B,C...,Z)

而数据元素可以是若干个数据项组成,就可以表示出更多信息。

以学生为例,一个数据元素是一个学生,它的可以包括学号、姓名、性别等信息,这些信息就是数据项。

注意点:

①  线性表中的元素必定是具有相同的特性,也就是说 都是学生,其中不能有老师或者其他类型的职业。

②  线性表中是序列,所以相邻元素之间存在序偶关系,就是有一定的顺序

比如(a1,a2,a3...,ai-1,ai,ai+1,...an),这个线性表中,ai-1就是ai的直接前驱元素(前一个元素),相反就是直接后继元素

其中,第一个数据元素没有前驱元素,最后一个数据元素没有后继元素。n就是线性表的长度,n=0就是空表,i就是a的位序

举个线性表的题,LA和LB是两个线性表,其中的数据元素都是按非递减有序排列,将其归并为LC线性表中,

要求LC中数据元素是按非递增线性排列。

思路:LA和LB是按非递减排列的,那么获取其长度从后往前,依次比较,然后将max(a,b)插入LC中,然后保留较小的数,将其和另一个线性表中下一个数进行比较,再次比较,重复进行。直到LA和LB中比较元素的位序都为0结束。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值