Python数据结构与算法:第1-8课时:数据结构的引入
算法注重的是方法、没有关注对象数据的类型结构。
不同的数据结构对于信息的传递保存效率也有所不同。
数据结构
提出问题:我们如何用Python中的类型来保存一个班的学生信息? 如果想要快速的通过学生姓名获取其信息呢?
比如可以用列表存储、或者字典、元组也可以。
亦或者 列表内是一个个子字典的方式来存储。
通过字典可以直接通过键值对一步找到某个学生的信息。
概念
数据是一个抽象的概念,将其进行分类后得到程序设计语言中的基本类型。如:int,float,char等。数据元素之间不是独立的,存在特定的关系,这些关系便是结构。数据结构指数据对象中数据元素之间的关系。
Python给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组、字典。而有些数据组织方式,Python系统里面没有直接定义,需要我们自己去定义实现这些数据的组织方式,这些数据组织方式称之为Python的扩展数据结构,比如栈,队列等。
组织一系列数据的方式就是数据的结构。
数据结构就是一组数据如何保存。
算法与数据结构的区别
数据结构只是静态的描述了数据元素之间的关系。
高效的程序需要在数据结构的基础上设计和选择算法。
程序 = 数据结构 + 算法
总结:算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体
抽象数据类型(Abstract Data Type)
抽象数据类型(ADT)的含义是指一个数学模型以及定义在此数学模型上的一组操作。即把数据类型和数据类型上的运算捆在一起,进行封装。引入抽象数据类型的目的是把数据类型的表示和数据类型上运算的实现与这些数据类型和运算在程序中的引用隔开,使它们相互独立。
最常用的数据运算有五种:
• 插入
• 删除
• 修改
• 查找
• 排序
比如我们定义一个类,这个类产生的数据具有哪些运算功能,事先考虑好,搭好框架