嵌入式团队培训_数据结构和算法概述

要求:理解并记忆即可,会求解算法的时间复杂度

总结:程序设计 = 数据结构 + 算法
解释:数据结构用于解决数据存储问题,而算法用于处理和分析数据。(目录,网页前进和后退)

一:数据结构

数据:所有能输入计算机中的符号。不仅仅包括我们平时用的整型,浮点型等,还有字符,声音,图片,视频(通过编码变成字符数据)等。

直白地理解,就是研究数据的逻辑关系与存储方式的一门学科。简单的分为:数据的逻辑结构(逻辑关系)和
物理结构
。它是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作(CRUD)。

大一下考试内容:记住即可

1.逻辑结构:

数据的逻辑结构,简单地理解,就是指的数据之间的逻辑关系。

数据之间的逻辑关系可简单的分为三类:

  • 一对一 (线性结构,串)
  • 一对多 (层次结构 树)
  • 多对多 (图)

2.物理结构

指的是数据在计算机存储器中的存放方式(例如:内存中),可以选择集中存放,还是分散存放。

具体表现:顺序存储(地址连续)和链式存储(指针表示逻辑关系)。

3.抽象数据类型

抽象数据类型ADT:一个数学模型及定义在该模型上的一组操作。(说白了,就是个说明书)
之后讲解的一系列数据结构都是抽象数据类型。

二:算法

算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。在计算机中,算法是指解决方案的准确而完整的描述。

当解决问题时,首先心中要有解决问题的算法,围绕算法编写出程序代码。

所以程序设计 = 数据结构 + 算法

大一下考试内容:记住即可

1.算法的五个基本特征:

  1. 输入
    输入的参数,个数(>=0),例如:直接打印,就无参数传入。
  2. 输出
    输出和返回值,个数(>0),必须要有输出,至少要有个打印。
  3. 有穷性
    有限的执行步骤之后,不会出现无限循环,在有限时间内完成。
  4. 确定性
    每一步都必须具有具体的含义,不会出现二义性。
  5. 可行性
    刚才讲了要在有限时间内完成,即每一步是可行的,每一步都是有限时间的。(所以整体在有限时间内完成)

2.算法设计的要求

  1. 正确性(略):得到问题正确答案(废话)
  2. 可读性:便于程序员之间阅读,理解,交流,有助于人们理解算法,易修改调试。例如:注释
  3. 健壮性:对输入数据(参数)进行合法性校验。当输入数据不合法时,算法也会进行相关的处理,而不是出现异常。
  4. 尽量满足时间效率高和存储量低的需求(时间复杂度和空间复杂度低

3.时间、空间复杂度

(1)事后统计方法:(略)
通过设计好的测试程序(test)和数据,然后进行运行时间比较,从而才确定效率。

(2)事前估计估算方法
在编程前,依据统计方法对算法进行估算。

(3)时间、空间复杂度

算法的时间复杂度,主要看算法中使用到的循环结构中代码循环的次数(称为“频度”)。次数越少,算法的时间复杂度越低。

设问题输入的数据规模为n

a) ++x; s=0;

b) for (int i = 1; i <= n ; i++) {
    ++x; s +
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值