![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基于Python3的数据结构
文章平均质量分 59
学习相关的数据结构算法
一道秘制的小菜
记录我的学习日记
展开
-
基于Python3的数据结构与算法 - 22 贪心算法
一个小偷在某个商店发现有n个商品,第i个商品价值vi元,重wi千克。他希望拿走的价值尽量高,但他的背包最多只能容纳W千克的东西。他应该拿走哪些商品?假设商店老板需要找零n元钱,钱币的面额有:100元,50元、20元、5元和1元,(无限多张)如何找零使得所需要的钱币的数量最少?(选择0-1背包最后可能出现包装不满的情况,可能剩下好多容量)(选择最贵的直至包里不剩位置)方法一:可以通过Python中内置的。原创 2024-04-04 23:08:19 · 761 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 20 AVL的旋转
上图中的指的是该节点左右子树的高度差。(右子树高度-左子树高度)因为AVL树满足根的左右子树都是平衡二叉树,进行查找删除的操作时大致为一半一半的情况,因此一定不会出现极偏的情况。原创 2024-03-24 18:58:51 · 600 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 19 二叉搜索树
输出结果如下所示:我们可以发现,中序遍历的结果一定是升序的!(对于二叉搜索树来说),因为中序遍历的遍历规则为先遍历左边,再遍历根节点,再遍历右边。3. 如果要删除的节点有两个孩子:将该节点删除,并其右子树的最小节点(该节点最多有一个右孩子)替换当前节点。2. 如果要删除的节点只有一个孩子:将此节点的父亲与孩子连接,然后删除该节点。原创 2024-03-23 05:20:31 · 713 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 18 二叉树的遍历
将二叉树的节点定义为一个对象,节点之间通过类似链表的链接方式来连接。按照上图结构,自定义一个二叉树。原创 2024-03-23 05:19:55 · 314 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 17 树的实例:模拟文件系统
【代码】基于Python3的数据结构与算法 - 17 树的实例:模拟文件系统。原创 2024-03-22 03:51:43 · 91 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 17 哈希表
哈希表是一个通过哈希函数来计算数据存储位置的数据结构,通常支持如下操作:当关键字的全域U比较小时,直接寻址是一种简单而有效的方法。U: 关键字可能出现的所有的集合。T:根据U建立相关的T。然后关键字在相应的T中找值。直接寻址法的缺点:直接寻址表 + 哈希函数 = 哈希直接寻址表:key为k的元素放在k位置上改进直接寻址表:哈希(Hashing)哈希表(Hash Table, 又称为散列表),是一种线性表的存储结构。哈希表由一个直接寻址表和一个哈希函数组成。哈希函数 h(k) 将元素关键字k作为自变量,返回原创 2024-03-21 15:28:44 · 951 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 16 链表
按元素查找:都是挨个遍历,复杂度都为O(n).按下标查找:列表中直接存放地址,复杂度为O(1), 链表复杂度为O(n).在某元素后插入:列表为O(n),链表为O(1)删除某元素:列表为O(n),链表为O(1)链表在插入和删除的操作上明显快与顺序表。链表的内存分配更加灵活。原创 2024-03-21 14:50:50 · 787 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 09 希尔排序
希尔排序是一种排序的算法。原创 2024-03-01 23:25:22 · 596 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 05 堆排序
二叉树:度不超过2的树,即每个节点最多有两个孩子节点,且两个孩子节点被区分为左孩子节点和右孩子节点。满二叉树:一个二叉树,如果每一层的结点数都达到最大值,则这个二叉树就是满二叉树。叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。从满二叉树最后一层拿走几个节点;即相对于满二叉树,最下面一层可以不满,但必须从左到右依次排过来堆:一种特殊的完全二叉树结构。大根堆:一棵完全二叉树,满足任一节点都比其孩子节点大小根堆:一棵完全二叉树,满足任一节点都比其孩子节点小。原创 2024-02-28 22:09:20 · 776 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 15 栈和队列的应用(迷宫问题)
给一个二维列表,表示迷宫(0表示通道,1表示围墙)。给出算法,求一条走出迷宫的路径。原创 2024-03-12 05:04:26 · 331 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 03 插入排序
观察我们写的算法后发现:该算法的时间复杂度也为O(原创 2024-02-21 04:54:56 · 130 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 11 桶排序
在计数排序中,如果元素的范围比较大(比如在1到1亿之间),此时使用计数排序会创建一个巨大的列表,占用大量的内存空间,那么我们怎么改造算法?原创 2024-03-05 04:16:09 · 352 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 12 数据结构(列表和栈)
栈是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表。原创 2024-03-08 22:04:45 · 664 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 04 快速排序
此时我们需要自己写出partition(归位函数),对元素进行归位。原创 2024-02-23 22:06:39 · 396 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 01 复杂度和列表查找
算法基基础原创 2024-02-19 00:13:19 · 1416 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 08 NB三人组小结
递归需要消耗空间,因为快速排序采用递归,因此其空间复杂度平均为logn(递归走logn层),当遇到最坏情况为n(当为倒序的情况)例如对一个列表[3,2,1,2,4]排序,排序之后第一个2还位于第二个2的前面。稳定性指的是:当两个元素的数值一样的时候,保证他们之间的相对位置不变。需要保证两个a年龄之间的距离保持不变。或者有一组字典:分别位于第1,2,3行。原创 2024-03-01 23:24:46 · 424 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 06 topk问题
问题:目前共有n个数,设计算法得到前k大的数。原创 2024-02-29 18:38:39 · 140 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 10 计数排序
对列表进行排序,。设计时间复杂度为O(n)的算法。原创 2024-03-05 04:16:01 · 143 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 14 队列
目录一、定义1. 环形队列2. 自定义队列二、队列的内置模块 1. 双向队列队列也可以使用列表来实现:但是这种情况下会出现一个问题:若我们采用pop(下标来进行出队),此时操作上时间复杂度为为O(n),而且在情况(d)下,此时如果我们还需要入栈,只能在后面的空间上,前面的空间会造成浪费,因此我们引入环形队列。 可以到最后从头到尾接起来。定义:当队尾指针front == Maxsize - 1时, 再前进一个位置就自动到0. 对满的情况少1格是为了防止与空队列的情况相同。我们可以通过自己创建一个类来实现队列的原创 2024-03-12 05:04:16 · 512 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 11 基数排序
多关键字排序:假如现在有一个员工表。要求按照薪资排序,。原创 2024-03-08 22:03:09 · 239 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 07 归并排序
假设现在的列表分两段有序,如何将其合并成为一个有序列表。这种操作成为一次归并。原创 2024-02-29 19:38:32 · 295 阅读 · 0 评论 -
基于Python3的数据结构与算法 - 02 冒泡排序和选择排序
排序:将一组”无序“的记录序列调整为”有序“的记录序列。原创 2024-02-20 03:23:09 · 456 阅读 · 0 评论