第二学习笔记

我是在大话数据结构学的,所以可能会和培训的不太一样

数据

用例子解释数据的基本概念:
数据对象就像是人类这个群体
数据元素就是全部人类中的一个人
数据项就是一个人的姓名,生日,身高等等特点。所以,数据项就像是集合里的元素一样,是数据不可分割的最小单位
所以,其实这些概念就是包含与被包含的关系,也就是集合

数据结构
分为逻辑结构和物理结构
逻辑结构:数据元素之间的相互关系,就像人与人之间的各种关系。分为线性结构,树形结构,图形结构,集合结构。

物理结构:其实就是数据的相互关系在计算机中的存储形式,分为顺序存储和链式存储。顺序存储就是一排人按顺序站队,一个序号对一个人。但是这条队是在一个固定的地方固定的大小排的。而链式存储就是人在随意一个地方排队,但是,除了最后一个人,每个人都拥有后一个人所在地方的地址,也就是指针,从而,使不同地方排队的人也拥有相互的关系。

数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
是按照不同的值进行划分的
比如我们从宿舍去教学楼,可以用单车也可以用小汽车更可以用飞机。但是,对于也不算长的路程,明显用后两者太没必要,又耗资源。所以,选取自行车就可以了。也就是说,在不同的情况下,用适合的类型就可以了。这就是数据类型。

抽象数据类型就是数据类型的本质,就是那些操作的本质。
就像上面那个例子,无论是单车,小车还是飞机去教学楼。其实就是用交通工具。这就是本质。

算法

:其实就是解决特定问题的求解步骤。
五个基本特性:输入,输出,有穷性,确定性和可行性
算法设计的要求:正确性,可读性,健壮性,时间效率高和存储量低
对于算法时间复杂度,其实就是看一个算法要去走多少次才可以得出结果。
而算法时间复杂度用大O阶来表示。

推导大O阶:

1.如果算法走的次数直接是一个常数,那么就直接用O(1),不会出现什么O(2)、O(3)之类的。
2.如果出现x的三次方+x的二次方 之类的,只要保留最高次项,也就是。
3最高价前的数字只要不是1,直接去除。

看到一句话很有感触,愚公移山固然可敬,但发明炸药和推土机,可能更加实在和聪明。我想这就是为什么要优化算法的原因吧

线性表:分为顺序表以及链表。

线性表采用顺序存储的方式存储就称之为顺序表,顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。线性表采用指针链接的方式存储就称之为链表。

线性表是从逻辑结构的角度来说的,除了头和尾之外,它的每一个元素都只有一个前驱元素和一个后驱元素。各种队列(单向、双向、循环队列),栈等都是线性表的不同例子。

而数组是从物理存贮的角度来说的,线性表可以用数组存贮也可以用链表来存贮。同样的队列和栈也可以用数组和链表存贮,各有利弊。具体使用时,根据具体情况选择。

在学线性表时,其实概念还是比较好理解的,最难的还是各类专业英语词汇,各类词汇代表的意思,很难记住。并且,虽然其表达的操作都很简单但是,当你想组成一个复杂的操作时,就很难来组合。所以多练可能是唯一学会学精线性表的办法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值