数据结构与算法
文章平均质量分 82
xiaodidadada
程序猿一枚
展开
-
邓俊辉数据结构与算法学习笔记-第十二章
文章目录12.排序12. a1 快速排序算法12. a2 快速排序算法性能分析12. a3 快速排序变种12.b1 选取众数12.b3 选取通用算法12.c1 shell希尔排序12.c2 希尔排序逆序对12.排序12. a1 快速排序算法如上图,如何快速进行划分,找到轴点是关键。如何交换?成本多高?12. a2 快速排序算法性能分析快排的平均性能12. a3 快速排序变种之前的算法中,区间U是在L和G之间的。一轮遍历结束,找到了元素pivot的真正位置,只需要将lo处的pivot元原创 2021-06-05 22:10:18 · 259 阅读 · 1 评论 -
邓俊辉数据结构与算法学习笔记-第十一章
文章目录11.串11.a ADT11.b 串匹配11.b1 串匹配11.b2 蛮力匹配11.c KMP算法11.c1 KMP算法:从记忆力到预知力11.c2 KMP算法查表day6511.串11.a ADT真子串,真前缀,真后缀11.b 串匹配11.b1 串匹配因为如果采用随机算法,匹配成功的概率非常低,所以在测评算法复杂度时,将匹配失败和匹配成功分开考虑,分别计算算法复杂度。11.b2 蛮力匹配蛮力算法的效率之所以很低,是因为他不足以处理这种大量的局部匹配(前面都匹配成功,到最后匹配失原创 2021-06-05 20:32:08 · 477 阅读 · 2 评论 -
邓俊辉数据结构与算法学习笔记-第十章
文章目录第十章 优先级队列10.a10.a1 需求与动机10.a2 基本实现10.b10.b1 完全二叉堆结构10.b2 完全二叉堆插入与上滤10.b3 完全二叉堆删除与下滤day61第十章 优先级队列10.a10.a1 需求与动机10.a2 基本实现实现:考虑 efficiency + cost(效率+成本)杀鸡焉用牛刀10.b10.b1 完全二叉堆结构Complete Binary Heap10.b2 完全二叉堆插入与上滤这一过程,即所谓的上滤(percolate up)在原创 2020-11-17 16:09:05 · 234 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第九章
文章目录9.词典9.b 散列原理day58第九章 词典9.词典9.b 散列原理原创 2020-11-08 17:17:15 · 269 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第八章
文章目录第八章 高级搜索树原创 2020-10-31 16:24:12 · 300 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第七章
文章目录7 二叉搜索树7a. 概述7b7b-1 BST查找7b-2 BST插入7b-3 BST删除7c 平衡与等价day407 二叉搜索树7a. 概述BST: 二叉搜索树 ; BBST:平衡二叉搜索树7b7b-1 BST查找_hot记忆节点的语义:总是指向命中节点的父亲7b-2 BST插入上面插入算法的复杂度不会超过O(h),h为树的高度7b-3 BST删除上图为removeAt的可能情况之一:要删除的节点(69)有一颗子树为空,对应代码实现如下:上述①处代码也能够处理删除节点的左原创 2020-10-14 21:35:00 · 179 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第六章
文章目录图a 图a1 概述:邻接,相关a2 有向/无向图a3 路径 环路bb1-1 邻接矩阵-接口b1-2 邻接矩阵与关联矩阵b1-3 实例b1-4 顶点和边b1-5 邻接矩阵b1-6 顶点静态操作b1-7 边操作b1-8 顶点动态操作b1-9 综合评价c搜索c1 BFS化繁为简c2 策略c3 实现c4 可能情况c5 实例c6 多连通c7 复杂度c8 最短路径d 深度优先搜索d1 DFS算法d2 DFS框架d3 细节d4 无向图d5 有向图d6 多可达域d7 嵌套引理day25图a 图a1 概述:邻原创 2020-09-19 17:52:34 · 312 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第五章
文章目录树aa1 树a2 应用a3 有根树a4 有序树a5 路径a6 连通图无环图a7 深度层次b 在计算机中表示b1 树的表示b2 父节点b3 孩子节点b4 父亲孩子表示法b5 长子兄弟表示法c 二叉树c1 二叉树概述c2 真二叉树c3 描述多叉树day21树aa1 树tree将二者的优点结合起来,树是列表的列表List< List>a2 应用层次关系的表示:表达式(如RPN),文件系统,URL,…a3 有根树a4 有序树a5 路径a6 连通图无环图根据上图右半部原创 2020-09-13 21:22:24 · 289 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第四章
文章目录栈和队列a 栈的接口与实现a1 栈a2 实例a3 实现cc1-1 栈的典型应用c1-2 进制转换算法c1-3实现c2-1括号匹配实例c2-2 尝试c2-3c2-4 实现c2-5 反思c2-6栈和队列day17a 栈的接口与实现a1 栈a2 实例LIFO:后进先出a3 实现上图为基于向量模拟实现栈,其中入栈、出栈操作都是在向量末尾完成,复杂度是O(1),如果在向量首部实现入栈、出栈的话,复杂度就会变成O(n)cc1-1 栈的典型应用栈的典型应用场合c1-2 进制转换算法计算原创 2020-09-07 17:28:37 · 294 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第三章
文章目录第三章 列表aa1 从静态到动态a2 从向量到列表a3 从秩到位置a4 实现bb1循秩访问b2 查找b3 插入和复制b4 删除与析构b5 唯一化c 有序列表c1 有序列表唯一化构思c2 唯一化实现c3 查找d 选择排序d1 选择排序d2 实例d3 实现d4 推敲d5 selectMaxd6 性能e 插入排序e1 插入排序e2 构思e3 对比e4 实例e5 实现e6 性能分析e7 平均性能e8 逆序对第三章 列表day 14aa1 从静态到动态a2 从向量到列表a3 从秩到位置a4原创 2020-09-04 22:25:30 · 227 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第二章
文章目录第二章 向量a 接口与实现a1 接口与实现a2 向量ADTa3 操作实例a4 构造与析构a5 复制b 可扩充向量b1 可扩充向量b2 动态空间管理b3 递增式扩容b4 加倍式扩容b5 分摊复杂度 p42第二章 向量a 接口与实现a1 接口与实现a2 向量ADTa3 操作实例search接口,如果未找到对应的数,返回向量中不超过这个数的最大的数的index,如果都超过了这个数,返回-1,如果这个数重复多次,返回一系列index中最大的。a4 构造与析构a5 复制b 可扩充向量原创 2020-09-03 18:41:54 · 328 阅读 · 0 评论 -
邓俊辉数据结构与算法学习笔记-第一章
文章目录1.绪论a.计算b.算法1.绪论a.计算对象:规律、技巧目标:高效、低耗计算机是工具和手段,而计算才是目标绳索计算机及其算法(勾股定理)尺规计算及其算法(相似三角形)b.算法●计算 = 信息处理借助某种工具,遵照一定规则,以明确而机械的形式进行●算法,特定计算模型下,旨在解决特定问题的指令序列●算法:有穷性程序未必是算法...原创 2020-08-31 22:24:25 · 612 阅读 · 2 评论