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

程序设计:为计算机处理问题编制的一组指令集

数据结构:问题的数学模型

和数值计算相关的的数学模型求解的问题,如建立线性代数方程,常微分偏微分方程,就是计算数学所要研究的问题。
和非数值计算相关的的数学模型求解的问题,就是数据结构研究的问题。

数据

能被输入到计算机的,且能被计算机处理的符号的集合。如数,字符,图像,视频,音频。
计算机操作对象的总称

数据元素(数据结构中讨论的基本单位)

数据元素是数据项的集合,数据项才是最小单位。
在实现数据结构的时候,结构体就是一个数据元素,而里面定义的各个成员就是数据项

数据结构

带结构的数据元素的集合

数据结构的形式定义 (逻辑结构): 二元组 Data_Structure(D,S)

其中D是数据元素的有限集,S是D上关系的有限集

逻辑结构在计算机中的表示(存储结构)

元素的映像方法:二进制存储(bit)
关系的映像方法:以一个有序对<X,Y>表示

顺序映像:以存储位置的相邻表示后继关系,y的存储和C的存储位置之间相差常量C
链式映像:以附加信息(指针)表示后继关系。如X这个结点由两部分组成,一是数据元素X的值,二是y的存储地址
在这里插入图片描述

数据类型

一个值的集合及定义在此集合上的一组操作的总称。如,java中数组就是一个数据类型,C语言中的int,char……都是数据类型

抽象数据类型(ADT):三元组 (D,S,P)

一个数学模型及定义在此模型上的一组操作。
D是数据对象,S是D上的关系集,P是对D的基本操作集

因此要从抽象数据类型的角度去看数据结构

算法:解决问题的策略,规定的一个有限长的操作序列

算法=控制结构+原操作(固有数据类型的操作)

算法的(渐进)时间复杂度 T(n)=O( f(n) )

表示随着问题规模n的增大,算法执行时间的增长率 (也就是时间复杂度)与 f(n)的增长率相同

算法的执行时间=原操作的执行次数*原操作的执行时间 的和
执行时间执行次数之和成正比

下面是矩阵相乘的时间复杂度的求法

从算法中选取一个对于所研究问题是基本操作的原操作,该基本操作在算法中重复执行的次数(即执行次数之和)作为算法运行时间的衡量标准。
下面的原操作有赋值,相加,相乘,乘法是基本操作
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值