哈夫曼树编码与查找算法(C语言实现) 1.哈夫曼树的查找算法查找算法根据构建哈夫曼树算法衍生而来,我们在构建二叉树时需要查找出哪些数据最小,以符合我们哈夫曼树的最优解情况。查找权重值最小的两个结点的思想是:从待处理数据的头部位置开始,首先找到两个无父结点的结点(说明还未使用其构建成树), 树 2022年04月23日 228 点赞 0 评论 141235 浏览
DP优化(一)单调队列/单调栈优化实例讲解 一、什么是单调栈和单调队列?(1)单调栈从名字上就听的出来,单调栈中存放的数据应该是严格单调有序的,具有以下两个性质。1.满足从栈顶到栈底的元素具有严格的单调递增或单调递减性;2.满足栈的后进先出特性,即越靠近栈底的元素越早进栈。单调栈也分为单调递增栈和单调递减栈。 动态规划 2022年05月04日 201 点赞 0 评论 128385 浏览
冒泡排序算法C/C++代码图文讲解 冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 排序算法 2022年03月22日 212 点赞 0 评论 123895 浏览
什么是拓扑排序? 拓扑排序的英文名是Topologicalsorting。拓扑排序要解决的问题是给一个图的所有节点排序。一、什么是拓扑排序在图论中,拓扑排序(TopologicalSorting)是一个有向无环图(DAG,DirectedAcyclicGraph)的所有顶点的线性序列。 图论 2022年01月19日 148 点赞 0 评论 138271 浏览
字符串匹配实例讲解 本篇主要讲字符串匹配以及字符串算法中三个主要算法的一些内容,帮助大家理解。一、基本概念字符串匹配问题假设文本是一个长度为n的数组T[1…n],而模式是一个长度为m的数组P[1…m],其中m≤n,进一步假设P和T的元素都是来自一个有限的字母集∑的字符。 字符串相关 2022年01月25日 213 点赞 0 评论 91934 浏览
网络流的基本概念 什么是网络流?首先大家要知道网络流在图论中是尤为重要的。在这里,给大家介绍网络流中的一些基本知识。一、网络流的概念和定义整理在图论中,网络流(英语:Networkflow)是指在一个每条边都有容量(Capacity)的有向图分配流,使一条边的流量不会超过它的容量。 图论 2022年03月23日 158 点赞 0 评论 106337 浏览
记忆化搜索实例讲解 什么是记忆化搜索?记忆化搜索在本质上,还是动态规划,只是实现方式采用了深度优先搜索的形式,但是它不像深度优先搜索那样重复枚举所有情况,而是把已经计算的子问题保存下来,这样就和动态规划的思想不谋而合了。本篇文章会通过最简单的例子对记忆化搜索进行深入讲解,帮助大家学会什么是记忆化搜索。 动态规划 2022年04月24日 244 点赞 0 评论 79807 浏览
模拟算法实例讲解 模拟,属于入门级算法,顾名思义,就是让电脑按照题目所给出的方法来运行,最终输出所需要的结果的过程。本篇主要是从模拟算法的概念和实例进行讲解和分析。一、模拟的概念(1)模拟的介绍模拟就是用计算机来模拟题目中要求的操作。模拟题目通常具有码量大、操作多、思路繁复的特点。 算法基础 2022年01月12日 144 点赞 0 评论 83395 浏览
搜索算法简介 说到搜索算法,它是利用计算机的高性能来有目的的穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的节点的过程。搜索算法在路径规划、行为决策、语句识别、语义分析等多个领域都发挥着非常重要的作用, 搜索算法 2022年01月06日 67 点赞 0 评论 83441 浏览
什么是Manacher算法? 本篇讲解manacher算法,大家在学习之前,提前了解一下两个字符串相算法——kmp和拓展kmp,这些算法都是字符串算法。相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和拓展kmp算法有很多共通支出,所以在这里介绍一下。 字符串相关 2022年05月26日 131 点赞 0 评论 100488 浏览