【数据结构与算法】一、数据结构的基本概念

一、数据结构的基本概念

1.1 数据结构的研究内容

在这里插入图片描述

1.2 数据类型和抽象数据类型

抽象数据类型(ADT)定义举例:Circle的定义

ADT 抽象数据类型名{
    Data
      数据对象的定义
      数据元素之间逻辑关系的定义
    Operation
      操作1
        初始条件
        操作结果描述
      操作2
        ......
      操作n
        ......
}ADT 抽象数据类型名

ADT Circle{
    数据对象:D={r,x,y|r,x,y均为实数}
    数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}
    基本操作:
    Circle(&C,r,x,y)
        操作结果:构造一个圆。
    double Area(C)
        初始条件:圆已存在。
        操作结果:计算面积。
    double Circumference(C)
        初始条件:圆已存在
        操作结果:计算周长
    ......
}ADT Circle

如何处理杂乱无章且多样化的数据:
在这里插入图片描述

数据元素:数据中的个体被称为数据元素。
数据对象:性质相同的数据元素组成的集合。
数据结构:数据元素加上数据元素之间的关系,就形成了数据结构。
逻辑结构:数据结构的逻辑模型。主要有集合结构,线性结构,树形结构,图状结构。
存储结构:数据结构映射到内存的表示方式。主要有顺序结构,链式结构,索引结构和散列结构
抽象数据类型:数据结构加上操作后就形成了抽象数据类型,主要包括数据对象,数据关系,基本操作。
上述概念总结如下图所示:

在这里插入图片描述

1.3 算法和算法分析

1.3.1 算法的时间复杂度

对于复杂的算法,可以将它分成几个容易估算的部分,然后利用大O加法法则和乘法法则,计算算法的时间复杂度:

  • a)加法规则
    T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))
  • b)乘法规则
    T(n)=T1(n)*T2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))

1.3.2 算法时间效率的比较

在这里插入图片描述

设计好算法的过程

  • 1、在对具体问题进行分析时,我们提取出需要处理的数据对象和数据对象之间的关系,便得到了数据的逻辑结构。
  • 2、根据数据的逻辑结构我们选择合适的存储结构。
  • 3、数据存储完后根据算法的时间和空间复杂度选择合适的算法对数据进行处理。
    在这里插入图片描述

1.4 知识回顾

在这里插入图片描述

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩飞雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值