寒假作业第三周
文章平均质量分 55
大一新生fw:本人在此声明,写博客纯粹是为了提升自己并且为了以后的复习用,希望大家一起加油!!!
娇娇yyyyyy
大二fw:本人在此声明,写博客纯粹是为了提升自己并且为了以后的复习用,希望大家一起加油!!!
展开
-
搜索与图论第二期 BFS
BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。BFS同样属于盲目搜索。一般用队列数据结构来辅助实现BFS算法。1首先将根节点放入队列中。2从队列中取出第一个节点,并检验它是否为目标。如果找到目标,则结束搜寻并回传结果。否则将它所有尚未检验过的直接子节点加入队列中。3若队列为空,表示整张图都检查过了——亦即图中没有欲搜寻的目标。结束搜寻并回传“找不到目标”。重复步骤2。原创 2024-01-12 04:30:00 · 912 阅读 · 1 评论 -
搜索与图论第四期 树与图的广度优先遍历(例题)
例题:快速排序模板:AC代码:源码:#include <iostream>using namespace std;const int N = 1e6 + 10;int n;int q[N];void quick_sort(int q[], int l, int r) { if (l >= r) return ; int x = q[l], i = l - 1, j = r + 1; while (i < j) { do i++;原创 2024-01-18 06:00:00 · 420 阅读 · 0 评论 -
搜索与图论第七期 Prime算法
最小生成树prim算法简单理解他的寻找路径的过程,从一个顶点V0开始,首先找到所有与V0相关联的顶点,查看这些顶点到V0的加权值,找出最小的一个,然后将该顶点纳入已统计顶点中。寻找第三个顶点时,将V0、之前已算出的顶点与所有相关联且未统计的顶点,找出最小的一个,纳入已统计顶点中。prim算法是实现图的最小生成树。既然是图,就假设包含n个顶点,m条边。prim算法是从顶点出发的,其算法时间复杂度与顶点数目有关系。从某个顶点开始,假设v0,此时v0属于最小生成树节点中的一个元素,该集合假设u,剩下的V-v0为待原创 2024-01-24 04:30:00 · 495 阅读 · 0 评论 -
搜索与图论第一期 DFS(深度优先搜索)
深度优先遍历图的方法是,从图中某顶点v出发:(1)访问顶点v;(2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问;(3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前原创 2024-01-11 04:00:00 · 665 阅读 · 1 评论 -
搜索与图论第五期 拓扑序列
拓扑排序拓扑排序是一种对有向无环图(Directed Acyclic Graph,简称DAG)进行的排序过程,目的是将图中所有的顶点按照发生事件的顺序排成一条线性序列。这种排序确保了图中任意两个相邻顶点之间至少有一条边相连,且在这条边的方向上,这条边的终点在前于起点。拓扑排序的一个关键特性是,它只包含在一个顶点在其事件序列中出现的次数,这意味着每个顶点只会出现一次。要执行拓扑排序,可以从DAG图的任一顶点开始,选择出度为0的顶点作为“根”,并将它们放入队列。然后,从队列中取出顶点,将其事件序列中的下一个顶原创 2024-01-22 16:26:12 · 1125 阅读 · 0 评论 -
搜索与图论第八期 二分图
二分图是这样一个图: 有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边直接相连接!无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数。判断二分图的常见方法是染色法: 开始对任意一未染色的顶点染色,之后判断其相邻的顶点中,若未染色则将其染上和相邻顶点不同的颜色, 若已经染色且颜色和相邻顶点的颜色相同则说明不是二分图,若颜色不同则继续判断,bfs和dfs可以搞定!易知:任何无回路的的图均是二分图 图解:原创 2024-01-25 02:30:00 · 568 阅读 · 0 评论 -
搜索与图论第三期 树与图的深度优先遍历
前言该部分内容实际上是DFS的一个扩展,只要是会了DFS之后,这部分其实也差不多,直接上例题啦就。 1.例题:2.AC代码:#include <iostream>#include <cstrin原创 2024-01-17 15:17:26 · 885 阅读 · 0 评论 -
搜索与图论第六期 最短路问题
Dijkstra算法是一种著名的图算法,主要用于求解有权图中的单源最短路径问题。它由荷兰计算机科学家艾兹赫尔·戴克斯特拉(Edsger Wybe Dijkstra)在1956年首次提出。Dijkstra算法的核心思想是通过以下步骤逐步构建最短路径树:初始化:创建一个空白的最短路径字典,其中每个节点的距离设置为无穷大,起始节点的距离设置为0。标记已访问节点:创建一个已访问节点集合,并将所有节点都加入这个集合。更新距离:对于未被访问的节点,从其未被访问的邻居中选择距离当前节点最近的邻居,将其标记为已访问原创 2024-01-23 05:30:00 · 1894 阅读 · 1 评论