数据结构和算法(数据结构引入)

允我心安 提交于 2020-02-01 00:09:09

数据结构

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

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

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

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

概念

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

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

算法与数据结构的区别

数据结构只是静态的描述数据元素之间的关系。
高效的程序需要在数据结构的基础上设计和选择算法,
程序 = 数据结构 + 算法
总结,算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体

抽象数据类型(Abstract Data Type)

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

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

  1. 插入
  2. 删除
  3. 修改
  4. 查找
  5. 排序
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!