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

《经典图论算法》卡恩(Kahn)算法

摘要:

1,卡恩(Kahn)算法的介绍

2,卡恩(Kahn)算法的代码实现

1,卡恩(Kahn)算法的介绍

卡恩(Kahn)算法是图的拓扑排序(Topological sorting)算法,它是基于队列实现的,类似于《宽度优先搜索(BFS)》。

拓扑排序就是在一个有向无环图中,对图的顶点的一种线性排序,对于任意一条有向边<v1,v2>,排序的结果中顶点v1一定在顶点v2的前面。如下图所示,对于<起床,洗脸>这条边,排序的结果中起床一定在洗脸的前面。

74bb13a5cd384a86efaefab0b89cd74d.png

当且仅当图是有向无环图时,才有可能进行拓扑排序,任何有向无环图至少有一个拓扑排序。如下图所示,在洗脸之前需要刷牙,在刷牙之前需要洗脸,构成了环形,所以没法排序。

8d61e0f31408d4c94d777b1d3547cf22.png

2,卡恩(Kahn)算法的代码实现

卡恩(Kahn)算法实现拓扑排序的原理比较简单,步骤如下:


http://www.kler.cn/news/283160.html

相关文章:

  • 【电控笔记z27】相对位置控制(无前馈)
  • 【算法】递归、回溯、剪枝、dfs 算法题练习(N皇后、单词搜索、数独问题;C++)
  • Nginx: 反向代理和动静分离概述
  • 02. 开发前准备,Docker安装MySQL,Redis
  • SpringBoot优雅的封装不同研发环境下(环境隔离)RocketMq自动ack和手动ack
  • python实战二-筛选多个Excel中数据
  • 深度学习论文被评“创新性不足、工作量不够”怎么办?
  • Java毕业设计 基于SSM校园心理咨询服务平台
  • 应对Nginx负载均衡中的请求超时:策略与配置
  • HTTPS 通信时是对称加密还是非对称加密?
  • 基于SpringBoot的医疗服务系统
  • 贝塞尔曲线
  • uniapp小程序怎么判断滑动的方向
  • Redis—基础篇
  • 如何让大模型学会自我反思
  • VMware安装Ubuntu 23.10.1系统图文版
  • Yolo环境搭建(深度学习基础环境)
  • 在Docker中,本地的镜像文件都存放在哪里?
  • 数据安全守护者:精通数据备份与恢复的艺术
  • 优化大型语言模型微调:MoLA层级专家分配策略
  • CSS3 3D 转换
  • HarmonyOS鸿蒙开发( Beta5版)Navigation组件常规加载与动态加载
  • Ubuntu 20.04 源码编译安装OpenCV 4.5.0
  • C++:继承用法详解~
  • 从挫败到精通:三步克服编程学习的难关
  • 【Leetcode 2206 】 将数组划分成相等数对 —— 哈希表与数组模拟哈希表
  • Elasticsearch 中,term 查询和 match 查询的区别
  • JavaScript常见知识点总结
  • 搜维尔科技:‌XSENS高精度惯性动作捕捉系统,人形机器人Al训练专用设备
  • 华为HCIP-datacom 真题 (2024年下半年最新题库)