- 博客(18)
- 收藏
- 关注
原创 数据结构进阶 - 第九章 排序
排序:将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。选取轴值,做划分从待排序记录序列中选取一个记录,其关键字设为K1,将其余关键字小于K1的记录移到前面,而将关键字大于K1的记录移到后面,使得将待排序记录序列分成两个子序列,最后将关键字为K1的记录插到其分界线的位置处。分别对分割后的两个子序列进行快速排序对分割后的两个子序列继续按上述原则进行分割,直到所有子序列的表长不超过1为止。
2025-06-26 18:18:54
726
原创 数据结构进阶 - 第八章 查找算法
查找:根据给定的关键字值,在特定的列表中确定一个其关键字与给定关键字相同的数据元素,并返回该数据元素在列表中的位置。查找对象K(我什么)查找范围L(在哪儿)查找的结果(K在L中的位置)其中,为输入参量,在查找中不可缺少。为输出参量,可由函数返回值表示。20/* r[0]为工作单元 */int length;二叉排序树若它的左子树非空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树非空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。
2025-06-26 18:12:33
734
原创 数据结构进阶 第七章 图(Graph)
20// 顶点数组// 邻接矩阵// 顶点数和边数// 图的类型int adjvex;// 邻接点位置// 下一条边// 边的其他信息} ArcNode;// 顶点数据// 第一条边} AdjList;图的基本概念:理解图的定义、分类和基本术语图的存储结构:掌握邻接矩阵和邻接表两种存储方式及其特点图的遍历算法:深度优先搜索(DFS)和广度优先搜索(BFS)图的应用最小生成树(Prim算法、Kruskal算法)最短路径问题(Dijkstra算法、Floyd算法)
2025-06-26 18:03:10
868
原创 数据结构进阶 第六章 树与二叉树
二叉树不是度为2的树:二叉树是有序树,左右子树有区别每个结点最多有两个孩子二叉树是有序树Huffman树是WPL最短的树前缀码:任意一个编码都不是其他编码的前缀Huffman编码是最优前缀码编码规则:在Huffman树上按左0右1或左1右0的规则进行编码二叉树性质(推广到树)与存储(顺序、链式)二叉树遍历算法(递归、非递归)线索二叉树(线索化、找前驱后继)二叉树与树、森林的转化哈夫曼树(二叉、k叉)并查集。
2025-06-26 17:25:35
840
原创 数据结构进阶 - 第四,五章 串、数组和广义表
广义表:特殊的线性表,其特殊性在于广义表中的元素既可以是单个元素,还可以是一个广义表。串的模式匹配BF算法:简单但效率低,时间复杂度O(n×m)KMP算法:利用next数组避免回退,时间复杂度O(n+m)KMP改进:利用nextval数组进一步优化数组地址计算掌握一维、二维、三维数组的地址计算公式注意下标起始位置(0或1)特殊矩阵压缩存储对称矩阵:存储下三角,地址映射关系带状矩阵:根据带宽确定存储方式稀疏矩阵:三元组表示法,转置算法广义表理解表头、表尾概念。
2025-06-26 17:17:13
791
原创 数据结构进阶 - 第三章 栈与队列
栈和队列的基本概念栈和队列的顺序存储结构栈和队列的链式存储结构栈与递归的关系栈在表达式求值中的应用双端队列的性质和判断优先级队列的实现各种存储结构的算法实现。
2025-06-26 17:07:42
952
原创 数据结构进阶 - 第二章 线性表
存在唯一首元素、尾元素除首元素和尾元素外,其余每个元素只有一个前驱和后继(线性结构,1:1关系)表示方法唯一直接前驱唯一直接后继用一段连续的内存空间存储线性表中的元素。逻辑上相邻的元素,物理存储位置也相邻。// 最后元素下标} SeqList;线性表中的元素在内存空间中的位置不一定连续。为了维系元素的逻辑关系,需要额外的指针域(next)记录下一个元素的位置。头插法:用于链表逆置、构建递减序列尾插法:用于构建递增序列预留指针、工作指针:用于删除操作。
2025-06-26 17:04:22
570
原创 数据结构进阶 - 第一章 绪论
数据:能输入计算机且被处理的各种符号的集合。数据元素:组成数据的基本单位,是数据集合的个体。本课程讨论的最小单位。数据对象:性质相同的数据元素的集合,是数据的一个子集。数据结构:带有某种结构关系的、性质相同的数据元素的集合,包括逻辑关系、物理存储和操作。抽象数据类型定义了一个数据对象、数据对象中各元素间的结构关系和一组操作。(数据对象、关系、基本操作)抽象是一种思维方式,抽取问题的本质特征,隐藏了复杂的细节,让使用者只关注应用而不关注实现细节。T(n)=O(n²)
2025-06-26 16:58:22
1049
原创 删除数字得到最大数问题(贪心算法)
这个问题的核心在于贪心策略的正确性局部最优 → 全局最优:每一步都选择当前最优的删除策略高位优先原则:优先保证高位数字尽可能大单调栈应用:利用栈结构高效实现贪心删除关键理解:我们不是在"选择保留哪些数字",而是在"选择删除哪些数字",通过贪心策略确保删除的都是"影响最小"的数字。
2025-05-23 14:07:25
492
原创 《算法设计与分析》第二章:递归
在定义一个过程或函数时出现调用本过程或本函数的成分,称之为递归。若调用自身,称之为直接递归。若过程或函数p调用过程或函数q,而q又调用p,称之为间接递归。任何间接递归都可以等价地转换为直接递归。如果一个递归过程或递归函数中递归调用语句是最后一条执行语句,则称这种递归调用为尾递归。else在该函数fun(n)求解过程中,直接调用fun(n-1)(语句4)自身,所以它是一个直接递归函数。又由于递归调用是最后一条语句,所以它又属于尾递归。
2024-05-19 20:06:54
1352
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人