
数据结构&算法设计(C++)
文章平均质量分 66
xyk_hust
大家好,欢迎访问我的博客,我是小编似冷非寒,我来自华中科技大学机械学院,喜欢研究机器学习、强化学习、深度学习领域。我的信仰是:从零到精通,与天赋无关,全靠汗水成就。相信不断奋斗的你,终有一天会成为别人眼中的大神...加油吧!少年...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划原理讲解(上)
版权声明:本文为博主原创文章,欢迎大家转载,但是要注明我的文章地址。 https://blog.csdn.net/xyk_hust/article/details/83933341 大家好,欢迎大家阅读动态规划部分。由于本人水平有限,文中错误之处还请大家批评指正。 动态规划分为两个部分进行讲解,第一部分是原理讲解,第二部分是进行实例分析。 1.1 预备知识:斐波那契数列(Fibonacci ...原创 2018-11-26 10:14:07 · 277 阅读 · 0 评论 -
(数据结构)第八章 高级搜索树
多路查找树(muitl-way search tree),其每一个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。主要有4中特殊形式。 一、2-3树 定义:其中的每一个节点都具有两个孩子(称为2节点)或者三个孩子(称为3节点)。 并且2-3树中所有的叶子都在同一层上。 一个2节点包含一个元素和两个孩子(或者没有孩子)。 一个3节点包含一小一大两个元素和三个孩子(或者没有孩子)。...原创 2019-01-05 08:53:04 · 324 阅读 · 1 评论 -
(数据结构)第六章 图
图 直观显示图结构的方法:用小圆圈或小方块代表顶点,用连接于其间的直线段或者曲线弧表示对应的边。 图:无向图、有向图及混合图 深度优先搜索实质功能:先将当前节点v标记为DISCOVERED(已发现)状态,再逐一核对其各邻居u的状态并做相应处理。待其所有邻居均以处理完毕之后,将顶点v置为VISITED(访问完毕)状态,便可回溯。 深度优先搜索 从图的某个顶点出发,访问图中的所有顶点,且使每...原创 2018-12-24 17:28:18 · 974 阅读 · 0 评论 -
(数据结构)第三章 列表
3.1 从向量到列表 向量中的秩同时对应于逻辑和物理次序,而位置仅对应于逻辑次序。 3.3.1 数据结构支持的操作:静态和动态。 size()和get()均可以在常数时间内完成。 insert()和remove()均需要线性时间完成。 静态策略:在O(1)时间内由秩确定向量元素的物理地址,但就动态操作而言,局部的修改可能引起大范围甚至整个数据结构的调整。 动态策略:列表,尽管要求各元素...原创 2018-12-12 17:30:02 · 407 阅读 · 0 评论 -
(数据结构)第五章 二叉树
二叉树 数据结构大致分为两种类型:基于数组的实现和基于链表的实现。 两种结构的特点: 基于数组的实现:通过下标或秩,在常数时间内找到目标对象。插入和删除,需要耗费线性时间。 基于链表的实现:借助引用或位置对象,在常数时间内插入或删除元素。但需要线性时间,对整个结构进行遍历查找。 树的元素之间并不存在天然的直接后继和直接前驱关系,树属于半线性结构。 树是一种分层结构,是其本质属性之一。 ...原创 2018-12-19 18:53:29 · 284 阅读 · 0 评论 -
(数据结构)第七章 搜索树
本章主要内容: 任何一棵二叉树是二叉搜索树,当且仅当其中序遍历序列单调非降。 算法:二叉搜索树的查找算法,亦采用了减而治之的思路和策略,其执行过程: 从树根出发,逐步地缩小查找范围,直到发现目标(成功)或缩小至空树(失败)。 完全二叉树中各节点的平衡因子非0即1,故完全二叉树必是AVL树。 高度为h的AVL树的确至少包含fib(h + 3) - 1个节点。包括n个节点的AVL树...原创 2018-12-26 17:43:30 · 168 阅读 · 1 评论 -
(数据结构)第四章 栈与队列
4.1 栈 许多程序语言本身就是建立在栈结构之上的,其实时运算环境都是基于栈结构的虚拟机。 相对于向量和列表,栈与队列的外部接口更为简化和紧凑。 栈的应用主要为: 结合函数调用栈的机制介绍一般函数调用的实现方式与过程,并将其推广至递归调用。然后以降低空间复杂度的目标为线索,介绍通过显示地维护栈结构解决应用问题的典型方法和基本技巧。 4.1.1 ADT接口 栈中可操作的一端更多地称作栈顶...原创 2018-12-14 18:26:54 · 220 阅读 · 0 评论 -
动态规划原理讲解(下)
本章节主要结合动态规划的实例代码进行讲解,使用python语言。 题目一: 选出的数字不能相邻,且使得选出的数字总和最大。 1.1 问题原理介绍 比如:可以选择1和9,结果为10。 但是如果选择4和9,结果为13,则结果为最优的。 并且选择的时候不一定非要选择两个,也可以选择其它方案,如下图所示 但是选出的方法结果也不会超过13,所以该方案并非最优。 1.2 代码与实...原创 2018-11-30 10:50:59 · 296 阅读 · 0 评论 -
(数据结构)第一章 绪论
1.1 计算机与算法 1.1.1 计算 计算首先是我们这门课程的直接研究对象和内容,也是我们这门课程的研究目的和目标。 对象:规律、一般性方法、技巧 目标:高效计算、低耗 绳索计算机 要求:通过直线l上给定的点A,作该直线的垂线。 过程: 计算机:长度为12 的绳索。 计算:重复机械的完成以上的过程。 尺规计算机 输入:任给平面上线段AB 输出:将其三等分的C和D点。 ...原创 2018-11-24 11:31:01 · 684 阅读 · 0 评论 -
(数据结构)第九章 字典
回顾: 寻秩访问(Rank):Vector 循位置访问(Position):List 循关键码访问(key):BST 循值访问(value):Hashing(散列) 9.3 散列表 底层支撑机构:最基本的向量。 通过适当的散列函数在词条的关键码与向量单元的秩之间建立起映射关系。 只要散列表、散列函数以及冲突排解策略设计的得当,三列技术可以在期望的常数时间内实现词典的所有接口操作。换...原创 2019-01-06 10:39:24 · 298 阅读 · 1 评论