数据结构 第一节 第七课

[toc]

数据结构

我们如何用 Python 中的类型来保存一个班的学生信息? 如果想要快速的通过学生姓名获取其信息呢?

实际上当我们在思考这个问题的时候, 我们已经用到了数据结构. 列表和字典都可以存储一个班的学生信息, 但是想要在列表中获取一名同学的信息时, 就要遍历这个列表, 其时间复杂度为 O(n), 而使用字典存储时, 可将学生姓名作为字典的键, 学生信息作为值, 进而查询时不需要遍历可快速获取到学生信息, 其时间复杂度为 O(1).

注: 对于这样的数据的组织方式, 我们就把他叫做数据结构

我们为了解决问题, 需要将数据保存下来, 然后根据数据的存储方式来设计算法实现进行处理, 那么数据的存储方式不同就会导致需要不同的算法进行处理. 我们希望算法解决问题的效率越快越好, 于是我们就需要考虑数据究竟如何保存的问题, 这就是数据结构.

在上面问题中我们可以选择 Python 中的列表或字典来存储学生信息. 列表和字典就是 Python 内建帮我们封装好的两种数据结构.

概念

数据是一个抽象的概念, 将其进行分类后得到程序设计语言中的基本类型. 如: int, float, char 等. 数据元素之间不是独立的, 存在特定关系, 这些关系便是结构. 数据结构指数据对象中数据元素之间的关系.

Python 给我们提供了很多现成的数据结构类型, 这些系统自己定义好的. 不需要我们自己去定义的数据叫做 Python 的内置数据结构, 比如列表, 元组, 字典. 而有些数据组织方式. Python 系统里没有直接定义, 需要我们自己去定义实现这些数据的组织方式, 这些数据组织方式称为 Python 的扩展数据结构, 比如 栈, 队列等.

算法与数据结构的区别

数据结构只是静态的描述了数据元素的关系.

高效率的程序需要在数据结构的基础上设计和选择算法.

程序 = 数据结构 + 算法

总结: 算法是为了解决实际问题而设计的, 数据结构是算法需要处理的问题载体

抽象数据类型 ( Abstract Data Type )

抽象数据类型 ( ADT ) 的含义是指一个数学模型以及在此数学模型上的一组操作. 即把数据类型和数据类型上的运算捆在一起, 进行封装. 引入抽象数据类型的目的是把数据类型的表示和数据类型上运算实现与这些数据类型和运算在程序中的引用隔开, 使他们互相独立.

最常见的数据运算有五种:

1. 插入

2. 删除

3. 修改

4. 查找

5. 排序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值