1.数据结构绪论

数据结构绪论

大纲主体:讲述数据结构的绪论,包括它的定义,三个要素,算法的五大特征。简单的提及算法效率


定义:

数据结构即是指相互之间存在一种或多种特定关系的数据元素的集合。在计算机科学中,是指计算机存储,组织数据的方式1

  • 通俗的说,计算机的功能就是要处理数据,不论是将数据存储起来,还是进行运算等。而数据结构就是让计算机更好的处理数据从而产生的。

三大要素:

数据结构三大要素中的逻辑结构和存储结构是指揭示了计算机是如何存储表示的,而运算则揭示了计算机如何运算的。

逻辑结构:

指数据元素之间的逻辑关系,既然强调的是逻辑,那么必然是较为抽象的概念,用于逻辑理解。而在这逻辑结构又可分为线性结构和非线性结构。线性表是典型的线性结构,树和图为典型的非线性结构。
逻辑结构的整体结构

  • 这里只需了解知道数据结构中逻辑结构整体是这样,后续会继续深入介绍理解。

存储结构:

是指数据结构在计算机中的表示,也可称为物理结构。强调的是存储,那么必然是可在计算机中实现表示,故而可以用计算机语言进行实现,依赖于计算机语言。
存储结构的结构图

  • 后面将会使用C语言代码一一实现其存储功能。在学习数据结构中,可以动手实践验证是一大特点。

运算:

是指施加在数据上的运算包括运算的定义和实现。运算的定义针对逻辑结构,指出运算的功能。运算的实现则是针对存储结构,指出运算的具有操作步骤。


五大特征:

是指算法的五个特性,分别是以下:

  1. 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成。
  2. 确定性:算法中每一条指令必须有确切的含义,不会产生二义性。
  3. 可行性:一个算法是可行的。即指可以通过已经实现的基本运算执行有限次来实现。
  4. 输入:一个算法有零个或多个的输入,该输入取自某个特定的对象的集合。
  5. 输出:一个算法有一个或多个的输出,该输出是同输入有着某种特定关系的量。

    这里提到算法,就有必要简单的来了解下什么是算法。计算机归根到底就是用于计算的一台机器,我们可以把它想象成一个黑盒子,将我们的数据输入进去,得出来的就是我们所需要的数据。那么在这“黑盒子”里,它是如何处理这些数据的,这里用到的就是称作“算法”的一个玩意,因而,算法就是指对特定问题求解步骤的一种描述就较好理解了。五大特性很好理解,假设我们想让计算机计算1+1,首先,我们得将1和1“输入”,在计算1+1过程中,我们当然希望计算机能够计算出来,那么这个算法就得“可行”,“确定”,并且我们希望它能尽快把结果告诉我们,自然就要“有穷”,最后计算机就可以“输出”结果了。


算法效率

时间复杂度:

一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有频度之和记作T(n),而时间复杂度主要就是用来分析T(n)的数量级。算法的时间复杂度记为O(n)=O(f(n))。
严格的数学定义:若T(n)和f(n)是定义在正整数集合上的两个函数,则存在正常书C和n0,使得当n>n0时候,都满足0≤T(n) ≤C*f(n)

最坏时间复杂度:在最坏情况下,算法的时间复杂度
最好时间复杂度:在最好情况下,算法的时间复杂度
平均时间复杂度:是指在所有可能输出入实例等概率出现情况下,算法的期望运行时间

加法规则:T(n)=T1(n)+T2(n)=O(f(n)+O(g(n))=O(max(f(n),g(n))
乘法规则:T(n) = T1(n)*T2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))
常见的渐近时间复杂度:时间复杂度

空间复杂度:

算法的空间复杂度记为S(n),指该算法所耗费的存储空间,它是问题规模n的函数,渐近空间复杂度也称为空间复杂度,记作S(n)=O(g(n))。若输入数据所占空间只取决于问题本身,和算法无关,则只需分析输入和程序之外的额外空间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值