数据结构(python)
python语言版本的数据结构
qq_22169787
这个作者很懒,什么都没留下…
展开
-
1.数据结构开篇
数据结构和算法是一名程序开发人员的必备基本功,不是一朝一夕就能练成绝世高手的。冰冻三尺非一日之寒,需要我们平时不断的主动去学习积累。 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。 算法是独立存在的一种解...原创 2018-10-25 11:29:00 · 189 阅读 · 0 评论 -
8.排序算法
一、排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假设以下的数对将要以他们的第一个数字来排序。(4, 1) (3, 1) (3, 7)(5, 6)在这...原创 2019-06-28 22:06:57 · 151 阅读 · 0 评论 -
6.2数据结构-单向循环链表和双向链表
6.2.1 单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。 操作is_empty() 判断链表是否为空 length() 返回链表的长度 travel() 遍历 add(item) 在头部添加一个节点 append(item) 在尾部添加一个节点 insert(pos, item) 在指定...原创 2019-05-23 21:39:30 · 131 阅读 · 0 评论 -
6.1数据结构-链表之单链表
链表为什么需要链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。链表的定义链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。...原创 2019-05-23 21:27:02 · 192 阅读 · 0 评论 -
7数据结构-栈和队列
7.1栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照先进后出(LIFO, La...原创 2019-05-24 22:29:38 · 514 阅读 · 0 评论 -
5.数据结构-顺序表
顺序表在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。对于这种需求,最简单的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系。这样的一组序列元素的组织形式,我们可以将其...原创 2019-05-20 21:25:10 · 189 阅读 · 0 评论 -
2.数据结构-算法效率衡量
目录1.衡量算法的指标2.算法的时间复杂度2.1 时间复杂度与“大O记法”2.2 最坏时间复杂度2.3时间复杂度的几条基本计算规则2.4 算法分析2.5 常见时间复杂度3.空间复杂度1.衡量算法的指标(1)时间复杂度:执行这个算法需要消耗多少时间。(2)空间复杂度:这个算法需要占用多少内存空间。 同一个问题可以用不同的算法解决,而一个算法的优劣将影...原创 2018-10-25 12:19:42 · 1103 阅读 · 1 评论 -
4 数据结构之深层理解
我们如何用Python中的类型来保存一个班的学生信息? 如果想要快速的通过学生姓名获取其信息呢?实际上当我们在思考这个问题的时候,我们已经用到了数据结构。列表和字典都可以存储一个班的学生信息,但是想要在列表中获取一名同学的信息时,就要遍历这个列表,其时间复杂度为O(n),而使用字典存储时,可将学生姓名作为字典的键,学生信息作为值,进而查询时不需要遍历便可快速获取到学生信息,其时间复杂...原创 2018-10-25 16:04:55 · 142 阅读 · 0 评论 -
3.数据结构-Python内置类型方法性能分析(python列表和字典操作复杂度)
目录1.python内置类型性能分析1.1timeit模块1.2 list操作测试1.3 list内置操作的时间复杂度1.4 dict内置操作的时间复杂度我们经常讲的时间复杂度是对基本数据类型(int、float、char等)和基本语句(for、if、while、顺序结构等)的操作的时间计算,例如纯c语言编写的程序复杂度计算,但是大家都知道python程序有很多都是函数调用...原创 2018-10-25 15:48:31 · 1378 阅读 · 0 评论 -
9.二叉树
1.树与树算法树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一...原创 2019-06-28 22:27:45 · 172 阅读 · 0 评论