- 博客(6)
- 收藏
- 关注
原创 Bellman-ford
bellman-ford可以用来计算加权图中的从源点到其他所有顶点的最短路径,并检测图中是否有负权回路。self.edges.append ((u,v,w))#添一条边(u,v)权重为w。print(f"顶点{i}:{dist[i]}")#初始化距离数组,所有距离设为无穷大,源点距离设为0。print("图中包含负权回路")self.V = vertices #顶点数。print("顶点距离源点的最短距离:")self.edges =[] #边列数。
2025-04-30 09:18:39
310
原创 dijkstra算法找非负加权图最短路径
假如我有一个如下图所示的路径图,我要从A点到D点,所有的边权都为非负数,我如何找到最短路径。dijkstra算法可以找到非负加权图的最短路径。start : 起始节点。graph : 链接图。end : 到达的节点。# 示例图(邻接表表示)
2025-04-23 10:51:33
804
原创 有向无环图之拓扑排序kahn算法(基于入度)
拓扑排序(TopSort)是一种针对有向无环图(DAG)的线性排序算法。return [] # 存在环,无法拓扑排序。print("有环,无法拓扑排序")我们将有一个→ 指向,称为有一个入度。
2025-04-18 14:31:16
1359
原创 洗牌算法产生随机排序
这里我们简化问题,假设有一个数组letterPool:{abcdefghijklmnopqrstuvwxyz} 我们如何得到letterPool的随机排列呢?// 生成一个0到i之间的随机索引。我们在打扑克牌时,每次开始时,都需要将牌打乱,产生一个随机的牌序。那么在计算机中程序中,这些该如何实现呢?// Fisher-Yates 洗牌算法。// 初始化随机数生成器。
2025-04-15 15:10:10
316
原创 迷宫寻路之广度优先算法(bfs)
简短介绍了深度优先算法(df)用于迷宫寻路,但深度优先算法具有随机性,而且找到的路不一定是最短的路径。上文括号里的参数,例如(3,1,4),3行,1为列,4为到达的最短步数。这里我们从(0,0)出发到到(2,2)位置,最少需要4步。if (q->front > q->rear) { // 队列为空时重置。//maze 表示迷宫,0表示可以通行,1表示不可以通行。//这里是path的索引。通过标注,我们可以清楚的知道最短路径。下面是通过c写的相关实现。// 队列结构用于BFS。// 检查队列是否为空。
2025-04-14 12:00:14
1870
原创 迷宫寻路之深度优先搜索(dfs)
* 这里的意思是标注迷宫每个点的位置,用x,y 表示,有且拥有迷宫中点数目的位置,每个点只会存储一次位置。//用于记录当前位置有没有访问过,初始为没有访问。//用于详细的记载,迷宫中的运动轨迹,方便输出。//这里是detailPath的索引。//maze 表示迷宫,0表示可以通行,1表示不可以通行。//这里是path的索引。
2025-04-11 12:21:47
571
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅