数据结构
biningo-QAQ
这个作者很懒,什么都没留下…
展开
-
Python实现二叉搜索树-查找树-排序树【通俗易懂】
二叉搜索树定义父亲节点的左孩纸小于父亲节点,右孩纸大于父亲节点从别人博客拉了一张图复杂度分析1、查询时间复杂度为 O(log2 n)~O(n)。时间复杂度和二分法类似,因为二叉树就是用到了二分的思想最坏情况会退化成一条链这时的复杂度为O(n)代码实现1、初始化类用python的列表来实现树形结构 方便点 size为树的元素大小传入size要可能大,因为用数组来模仿树...原创 2019-09-15 20:52:52 · 805 阅读 · 0 评论 -
堆-堆排序-优先级队列【Python实现】【效率最高之一的排序算法】
啥是堆?堆分为小堆和大堆小堆就是父节点都小于孩纸节点大堆相反每次从堆顶去得的元素都是最小值,但是每次插入元素和取出元素都要进行平衡堆,时间主要消耗在平衡上这里用数组实现堆结构1、初始化工作【内置操作函数】为上浮和下沉提供方便的函数 def __init__(self): self.data = [] def __len__(self): ...原创 2019-09-15 21:08:15 · 303 阅读 · 0 评论 -
你尝试自己实现一个队列吗?【Python列表实现】
啥是队列?先进先出如何用栈来实现队列?形象点就是:准备两个杯子,将一杯水倒入杯中【入栈】,要取得时候倒入另外的杯中,另一个杯子出栈顺序就和原来的杯子相反了,这就是队列代码class MyQueue: def __init__(self): self.in_stack=[] self.out_stack=[] def __len__(s...原创 2019-09-15 21:19:30 · 93 阅读 · 0 评论