算法
文章平均质量分 84
SS上善
这个作者很懒,什么都没留下…
展开
-
数据结构(王道笔记)——九大内部排序算法详解及比较(Java实现)
内部排序,是指在排序期间元素全部存放在内存中的排序。包括插入排序(直接插入排序、折半插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(简单选择排序、堆排序)、归并排序、基数排序 九大排序算法。内部排序算法的性能取决于算法的时间复杂度和空间复杂度,而时间复杂度一般是由比较和移动的次数决定的。文章详细介绍了哥哥排序基本思想及Java代码实现,并介绍了时间复杂度、空间复杂度、稳定性、过程特征、最坏情况的下界、适用性及应用。来源于王道一书的课程笔记。原创 2024-08-23 15:06:36 · 747 阅读 · 0 评论 -
并查集(树的应用、集合)
通常用树(森林)的双亲表示作为并查集的存储结构,每个子集合以一棵树表示。所有表示 子集合的树,构成表示全集合的森林,存放在双亲表示数组内。通常用数组元素的下标代表元素名,用根结点的下标代表子集合名,根结点的双亲结点为负数。采用树的双亲指针数组表示作为并查集的存储表示。原创 2023-07-20 13:46:06 · 285 阅读 · 1 评论 -
最小生成树——Kruskal算法
最小生成树——Kruskal算法详解,适合于边稀疏而顶点较多的图。以洛谷 [USACO3.1]最短网络 Agri-Net为例,说明算法的Kruskal实现过程。原创 2022-08-11 16:53:15 · 4731 阅读 · 0 评论 -
最小生成树——Prim算法
最小生成树——Prim算法详解,适用于求解边稠密图的最小生成树。以洛谷P1546 [USACO3.1]最短网络 Agri-Net为例说明Prim算法的Java实现过程。原创 2022-08-11 16:41:53 · 4477 阅读 · 0 评论 -
哈夫曼树(Huffman Tree)及哈夫曼编码(Huffman Coding)
哈夫曼树(Huffman Tree)又称最优二叉树,给定N个权值作为N个叶子结点,构造一棵二叉树,使该树的带权路径长度达到最小。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。本文所有概念性描述及图示均来自王道考研数据结构。...原创 2022-07-28 17:10:43 · 11758 阅读 · 0 评论 -
KMP算法详解【next数组图解】
KMP算法是一种改进的字符串匹配算法,其关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。如果已匹配相等的前缀序列中有某个后缀正好是模式的前缀,那么就可以将模式向后滑动到与这些相等字符对齐的位置,主串指针无须回溯,并继续从该位置开始进行比较。...原创 2022-07-17 00:17:01 · 4036 阅读 · 1 评论 -
计算机算法设计与分析
《计算机算法设计与分析》课程笔记。包括算法基本介绍、时间复杂度计算,以及递归与分治策略、贪心算法、动态规划、回溯法、分支界限法的基本使用和例题。原创 2022-07-15 18:51:25 · 4719 阅读 · 0 评论 -
字典树(Trie树)两种实现方式详解
字典树(Trie树)又称单词查找树、前缀树。一般采用二维数组或Java链表两种实现方法实现字典树,查找单词最小前缀。以leetcode题目648. 单词替换 为例实现代码https://leetcode.cn/problems/replace-words原创 2022-07-08 13:07:37 · 1604 阅读 · 3 评论