美文网首页
数据结构的引入(理论篇)

数据结构的引入(理论篇)

作者: 学人工智能的菜菜 | 来源:发表于2020-03-30 11:48 被阅读0次

数据结构

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

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

我们为了解决问题,需要将数据保存下来,然后根据数据的存储方式来设计算法实现进行处理,那么数据的存储方式不同就会导致需要不同的算法进行处理。我们希望算法解决问题的效率越快越好,于是我们就需要考虑数据究竟如何保存的问题,这就是数据结构。
在上面的问题中我们可以选择Python中的列表或字典来存储学生信息。列表和字典就是Python内建帮我们封装好的两种数据结构。

概念

数据是一个抽象的概念,将其进行分类后得到程序设计语言中的基本类型。如:int,float,char等。数据元素之间不是独立的,存在特定的关系,这些关系便是结构。数据结构指数据对象中数据元素之间的关系。
Python给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组、字典。而有些数据组织方式,Python系统里面没有直接定义,需要我们自己去定义实现这些数据的组织方式,这些数据组织方式称之为Python的扩展数据结构,比如栈,队列等。

算法与数据结构的区别

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

抽象数据类型(Abstract Data Type)

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

  • 插入
  • 删除
  • 修改
  • 查找
  • 排序

相关文章

  • 数据结构的引入(理论篇)

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

  • 基于 Spring Cloud 的微服务架构实践指南(上)

    一、 引入 上回Spring Cloud 理论篇介绍了 Spring Cloud 的常见组件,让读者对Spring...

  • 数据结构与算法(python)引入篇

    数据结构与算法(python) 一个不太恰当的理解, 兵法如果将写好运行的程序比作战场, 码农就是指挥这场战斗的指...

  • pandas入门

    引入pandas和常用的数据结构Series,DataFrame 一、pandas的数据结构的介绍 1.Serie...

  • Linear Model

    ML系列文章先引入数学理论和代码实现结合。 一、数学理论篇 引言: 数值型自变量和数值型新变量之间关系分析方法就是...

  • 数据结构探险之图篇(上)理论篇

    数据结构探险之图篇 什么是图? 如下图:无向图 & 有向图箭头分方向。无向图中每条认为有来有回两条线 图中的概念:...

  • 大统一理论的引入

    我们日常中的所有物体,都是由许多基本粒子构成的,如原子、离子等。原子下面,分为质子、中子、电子。而质子和中子,又是...

  • 数据结构与算法-目录

    数据结构与算法-目录 C语言篇 数据结构和算法-C语言篇1-绪论数据结构和算法-C语言篇2-初识算法数据结构与算法...

  • 数据结构理论

    数据结构分为逻辑结构和物理结构。 逻辑结构 1,集合结构。2,线性结构。3,属性结构。4,图形结构。 物理结构 1...

  • 使用 SSCoding 归档 Struct

    引言 Struct 是 Swift 新引入的一种数据结构,它可以用在各种简易的数据结构中,Swift 官方是强烈建...

网友评论

      本文标题:数据结构的引入(理论篇)

      本文链接:https://www.haomeiwen.com/subject/zubmuhtx.html