
数据结构与算法
is_sfencs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用Python语言理解递归
使用Python语言理解递归递归一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃。递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面对此方面进行更加深入的理解递归的分类这里根据递归调用的数量分为线性递归、二路递归与多重递归线性递归如果一个递归调用最多开始一个其他递归调用,我们称之...原创 2019-01-24 22:03:00 · 2193 阅读 · 0 评论 -
归并排序python实现
文章目录归并排序python实现归并排序完整算法时间复杂度归并排序python实现归并排序归并排序在于把序列拆分再合并起来,使用分治法来实现,这就意味这要构造递归算法首先是一个例子原序先通过一半一半的拆分,然后:然后再一步一步的向上合并,在合并的过程中完成了排序,合并排序算法如下:def merge(s1,s2,s): """将两个列表是s1,s2按顺序融合为一个列表s...原创 2019-03-27 16:24:03 · 12118 阅读 · 4 评论 -
计数排序与桶排序python实现
计数排序与桶排序python实现计数排序与桶排序python实现计数排序计数排序原理: 找到给定序列的最小值与最大值 创建一个长度为最大值-最小值+1的数组,初始化都为0 然后遍历原序列,并为数组中索引为当前值-最小值的值+1 此时数组中已经记录好每个值的数量,自然也就是有序的了 例如:计数排序实现下面为列表的计数排序def ...原创 2019-03-28 01:04:00 · 226 阅读 · 0 评论 -
理解2-3-4树
理解2-3-4树2-3-4树首先2-3-4树为什么要叫做2-3-4树因为这棵树除了叶子节点,所有的节点都只有2个孩子或3个孩子或4个孩子。这里所说的叶子结点我们当前默认全是空节点,就类似树的原来的叶子节点的孩子都是空节点,叫这些空节点叶子结点。就像这样:说节点都只有2个孩子或3个孩子或4个孩子,说明节点有3种,第一种是有两个孩子的: 图中的20就是这一种 第二种是有3个孩子...原创 2019-02-11 21:29:00 · 242 阅读 · 0 评论 -
详细理解平衡二叉树AVL与Python实现
详细理解平衡二叉树AVL与Python实现前言上一篇文章讨论的二叉搜索树,其时间复杂度最好的情况下是O(log(n)),但是最坏的情况是O(n),什么时候是O(n)呢?像这样:如果先插入10,再插入20,再插入30,再插入40就会成上边这个样子这个就像是双向链表,我们期望它是下面这个样子:所以我们希望有一种策略能够将第一个图变成第二个图,或者说使树的结构不会产生像第...原创 2019-02-10 13:32:00 · 362 阅读 · 0 评论 -
用Python实现数据结构之二叉搜索树
用Python实现数据结构之二叉搜索树二叉搜索树二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 一个图例:基于二叉搜索树的这种关系,我们可以用它来实现有序映射遍历二叉搜索树基于二叉搜索树的特性,采用中序遍历的方式可以...原创 2019-02-05 19:28:00 · 316 阅读 · 0 评论 -
用Python实现数据结构之映射
用Python实现数据结构之映射映射与字典字典dict是Python中重要的数据结构,在字典中,每一个键都对应一个值,其中键与值的关系就叫做映射,也可以说是每一个键都映射到一个值上。映射(map)是更具一般性的数据类型,具体到Python中就是字典。一个简单实现在使用字典的同时我们一定会有一个疑问,它是怎样通过键去映射到值的呢,它怎么知道这个键的值是谁?于是我们有了一个这样...原创 2019-02-04 17:20:00 · 3133 阅读 · 0 评论 -
用Python实现数据结构之优先级队列
用Python实现数据结构之优先级队列优先级队列如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了。这样,我们就引入了优先级队列 这种数据结构最简单的优先级队列可能就是一堆不同大小的数组成的队列,每次需要取出其中最小或最大的数,这是我们可以把这些数本身的大小叫做他们的优先级。...原创 2019-02-01 20:49:00 · 288 阅读 · 0 评论 -
用Python实现数据结构之树
用Python实现数据结构之树树树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。相关概念 根节点:树中最顶部的元素 父节点:处了根节点都有父节点,每个节点最多只...原创 2019-01-31 23:16:00 · 407 阅读 · 0 评论 -
用Python实现数据结构之链表
用Python实现数据结构之链表链表链表与栈,队列不一样,它是由一个个节点构成的,每个节点存储着本身的一些信息,也存储着其他一个或多个节点的引用,可以从一个节点找到其他的节点,节点与节点之间就像是有链连在一起一样,这种数据结构就叫做链表单向链表单向链表是链表的最简单形式,链表的第一个节点叫做头结点,最后一个节点叫做尾节点,每个节点都指向下一个节点,尾节点的指向为空,下面是其具体实现...原创 2019-01-30 16:26:00 · 245 阅读 · 0 评论 -
用Python实现数据结构之队列
用Python实现数据结构之队列队列队列与栈的类型很相似,但它遵循的原则是先进先出(FIFO),也就是元素插入的时候只能在该数据结构的末端,而删除只能删除最前面的元素。队列同样应用广泛,例如打印机的队列或者是一个web服务器响应请求。Python实现关于队列的方法作为一个队列,同样要满足一下几个方法: Q.enqueue(e):向队列Q的队尾添加一个元素 Q.d...原创 2019-01-29 16:24:00 · 325 阅读 · 0 评论 -
用Python实现数据结构之栈
用Python实现数据结构之栈栈栈是最简单的数据结构,也是最重要的数据结构。它的原则就是后进先出(LIFO),栈被使用于非常多的地方,例如浏览器中的后退按钮,文本编辑器中的撤销机制,接下来我们用Python来具体实现这个数据结构。Python实现栈中的方法作为一个栈(用S来表示),最基本的方法有下面几个: S.push(e): 将元素e添加到S的栈顶 S.pop...原创 2019-01-25 22:33:00 · 251 阅读 · 0 评论 -
快速排序python实现
文章目录快速排序python实现快速排序具体算法时间复杂度就地快速排序快速排序python实现快速排序快速排序的实现同样使用分治法,它的原理是从序列中选择一个值作为基准值,然后分成比基准值小的序列集合和比基准值小的序列集合和与基准值相等的序列集合。再将比基准值小的序列集合和比基准值小的序列集合再次进行选择基准值分割,最后再从下到上每层按照顺序合并即可。如图:每次分割都是以序列中的第一...原创 2019-03-27 16:25:33 · 253 阅读 · 0 评论