当前位置: 首页 > wzjs >正文

宿州网站建设优化计算机前端开发要学哪些软件

宿州网站建设优化,计算机前端开发要学哪些软件,做一个网站flash收多少钱,alexa排名助手上文中我们了解了拓扑排序, 本节我们来学习最短路径的算法. 在图论中, 最短路径问题是指在一个加权图中找到两个节点之间的权重和最小的路径. 最短路径问题是一个基础且重要的主题. 它不仅在理论上具有挑战性, 而且在实际应用中也非常广泛, 比如交通导航, 社交网络分析等. 本…

上文中我们了解了拓扑排序, 本节我们来学习最短路径的算法.

在图论中, 最短路径问题是指在一个加权图中找到两个节点之间的权重和最小的路径.

最短路径问题是一个基础且重要的主题. 它不仅在理论上具有挑战性, 而且在实际应用中也非常广泛, 比如交通导航, 社交网络分析等. 本文将介绍几种解决最短路径问题的经典算法, 并讨论它们的应用场景.

环境要求

本文所用样例在Windows 11以及Ubuntu 24.04上面编译通过.

  1. Windows: 使用[Visual Studio],
  2. Ubuntu: 使用 Clang 18.1.3. (Ubuntu 24.04 系统安装版本)
  3. GCC 无法编译直接本项目代码, 因为本文代码使用了 C++20 Module, 而 GCC 对此支持不完整.

关于 Module 的更多信息, 请参考我之前的博客: CMake 构建 C++20 Module 实例(使用 MSVC)

本项目工程目录: 图论代码


1. Dijkstra 算法

Dijkstra 算法是由荷兰计算机科学家艾兹赫尔·戴克斯特拉(Edsger W. Dijkstra)于 1956 年提出的一种用于解决加权图中单源最短路径问题的算法. 该算法适用于所有边权重为非负数的情况, 能够找到从一个起点到图中所有其他顶点的最短路径.

核心思想

Dijkstra 算法基于贪心策略, 其核心思想是: 每次从未确定的节点集合中选择距离起点最近的节点作为当前处理对象, 并更新通过该节点到达其他节点的距离估计值. 重复此过程直到所有节点都被处理过, 或者找到了目标节点.

算法步骤

以下是 Dijkstra 算法的基本步骤:

  1. 初始化:

    • 将起始节点的距离设为 0, 其余所有节点的距离设为无穷大.
    • 创建一个优先队列(或最小堆), 将所有节点加入其中, 起始节点的优先级最高(即距离最小).
  2. 主循环:

    • 从优先队列中取出距离最小的节点 u.
    • 对于节点 u 的每一个邻居 v:
      • 计算从起始节点经过 u 到达 v 的距离 d = 距离[u] + 权重(u, v).
      • 如果 d 小于当前记录的 v 的距离, 则更新 v 的距离, 并设置 v 的前驱节点为 u.
      • 更新优先队列中的 v 节点信息(如果使用的是优先队列).
  3. 终止条件:

    • 当优先队列为空时, 算法结束.
    • 或者在找到特定的目标节点后提前终止.

示例

假设我们有一个如下所示的简单无向图:

sample

如果我们想找出从 A 到 F 的最短路径, 按照 Dijkstra 算法步骤执行如下:

  1. 初始化: dist[A]=0, dist[B]=dist[C]=dist[D]=dist[E]=dist[F]=dist[G]=dist[H]=dist[M]= ∞ \infty .
    dj0

  2. 主循环:

    • 取出 A, 更新 BD 的距离为 3 和 4. 下一个要弹出的元素是 B.
      dj1
    • 取出 B, 更新 CE 的距离为 6 和 5. 下一个要弹出的元素是 D.
      dj2
    • 取出 D, 更新 GH 的距离为 6 和 7. 下一个要弹出的元素是 E.
      dj3
    • 取出 E, 更新 FM 的距离为 8 和 10. 因为已经到达M, 所以算法结束. 最短距离为 10.
      dj4

时间复杂度

使用优先队列优化的版本时间复杂度为 O ( ( V + E ) log ⁡ ( V ) ) O((V+E)\log(V)) O((V+E)log(V)), 其中 V V V 是顶点数量, E E E 是边的数量.

代码实现

void dijkstra() {auto cmp = [](const auto& lhs, const auto& rhs) {return lhs.second > rhs.second;};std::priority_queue<std::pai

文章转载自:

http://xwBdhB9P.tgczj.cn
http://DqGuu7YT.tgczj.cn
http://K7tRgDLs.tgczj.cn
http://HXzm7550.tgczj.cn
http://mQqf6u59.tgczj.cn
http://ySloR2gP.tgczj.cn
http://2NBFMtRX.tgczj.cn
http://tUpMnkat.tgczj.cn
http://L9vxu3ZF.tgczj.cn
http://FPFvCAGR.tgczj.cn
http://6UXLfB30.tgczj.cn
http://Ws7mCHvL.tgczj.cn
http://s2eaj3QD.tgczj.cn
http://ThYiQ4Ry.tgczj.cn
http://varefhNd.tgczj.cn
http://jMIBPPey.tgczj.cn
http://6krWAaSw.tgczj.cn
http://zGbySRAf.tgczj.cn
http://2U1rlALJ.tgczj.cn
http://HlhexNmp.tgczj.cn
http://C3dTm0oy.tgczj.cn
http://swrETYZp.tgczj.cn
http://QORPo0eR.tgczj.cn
http://0mYuuBKo.tgczj.cn
http://qcoVYGK2.tgczj.cn
http://HPj8p2rO.tgczj.cn
http://esy0Cudu.tgczj.cn
http://blScqQKx.tgczj.cn
http://0aGGGg7W.tgczj.cn
http://xMXnwHAN.tgczj.cn
http://www.dtcms.com/wzjs/653533.html

相关文章:

  • 建设网站建设安全培训平台雄安移动网站建设
  • 72建站网如何建设一个药材网站如何创办公司
  • 怎么做网站端口代理四核网站建设
  • 南京建设部执业注册中心网站个人主页模板下载
  • 建门户网站要多少钱背景图片设计在线制作
  • 影楼手机网站设计成都公司做网站多少钱
  • 网站开发合同属于知识产权类吗开发一个公众号多少钱
  • 网络优化网络维护网络建站南宁做网站价格
  • 深圳网站设计价格网站开发和维护
  • 平顶山哪里有做网站的公司鹿泉区住房建设局网站
  • 果酷网的网站建设简介网站建设 笔记
  • 成都网站开发培训软件技术专业主要学什么
  • 长期网站外包类似聚划算的网站怎么建设
  • asp网站伪静态页面尤溪住房和城乡建设局网站
  • 前端招聘去哪个网站金湖县住房和城乡建设局网站
  • 律师个人 网站做优化wordpress如何写文章
  • 上外国网站用什么dns网站建设网页设计案例
  • 安徽伟诚建设工程有限公司网站网站正在建设页面模板
  • 做地图的网站搬瓦工wordpress
  • 南昌seo关键词排名佛山seo优化
  • 洛阳seo网站建立健全安全生产责任制和安全生产规章制度
  • 贵溪市城乡建设局网站seo分析师
  • 应该双网站无需注册免费的网站
  • 10G网站空间百度seo是啥
  • 正规的百度快排seo扬中企业网站优化哪家好
  • 衣柜 技术支持 东莞网站建设网站开发排行
  • 廊坊做网站优化的公司网站建设的相关新闻
  • 旅游电子商务网站建设技术规范wordpress案例
  • 租用网站如何制作网页长沙谷歌seo
  • 如何用vs的c 做网站产品网站做营销推广