数据结构学习笔记(一)

本文档介绍了数据结构的基本概念,包括数据、数据元素、数据项、数据对象和关系,重点阐述了逻辑结构(线性、非线性、集合、线性、树形、图状)和存储结构(顺序、链式、索引、散列)。同时,讨论了数据类型和抽象数据类型的作用,并详细解析了算法的定义、设计要求以及效率分析,包括时间复杂度和空间复杂度的度量方法。
摘要由CSDN通过智能技术生成

1 学习目录

在这里插入图片描述

2 数据结构基本概念

2.1 数据

在这里插入图片描述

2.2 数据元素

在这里插入图片描述

2.3 数据项

在这里插入图片描述

2.4 数据对象

在这里插入图片描述

2.5 关系

在这里插入图片描述
在这里插入图片描述

2.6 数据结构
2.6.1 数据结构概念

在这里插入图片描述

2.6.2 数据结构内容

在这里插入图片描述

2.6.3 数据结构两个层次

在这里插入图片描述

2.6.3.1 逻辑结构种类

划分方式一:

  • 线性结构
  • 非线性结构

在这里插入图片描述
划分方式二:

  • 集合结构
  • 线性结构
  • 树形结构
  • 图状结构

在这里插入图片描述

2.6.3.2 存储结构种类
  • 顺序存储结构
    在这里插入图片描述

  • 链式存储结构
    在这里插入图片描述

  • 索引存储结构(了解)

  • 散列存储结构(了解)

2.7 数据类型和抽象数据类型
2.7.1 数据类型的作用
  • 约束变量或常量的取值范围
  • 约束变量或常量的操作

在这里插入图片描述

2.7.2 抽象数据类型(ADT)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 算法和算法分析

在这里插入图片描述

3.1 算法的定义

在这里插入图片描述

3.2 算法与程序关系

在这里插入图片描述

3.3 算法设计的要求

在这里插入图片描述

3.4 算法效率
  • 时间效率:算法所耗费的时间
  • 空间效率:算法执行过程中所耗费的存储空间

时间效率和空间效率有时候是矛盾的

3.4.1 算法时间效率的度量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.1.1 算法时间复杂度的渐进表示法

在这里插入图片描述
为了便于比较不同算法的时间效率,仅比较它们的数量级
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.1.1 分析算法时间复杂度的基本方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.1.2 分析算法时间复杂度的例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 有的情况下,算法中基本操作重复执行的次数还随问题的输入数据集不同而不同

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

  • 时间复杂度按数量级递增顺序为:
    在这里插入图片描述
3.4.2 算法空间效率的度量

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值