图论-拓扑排序(学习数据结构与算法分析 C++第三版—clifford A.Shaffer著)有感
来源:互联网 发布:阿里云香港服务器快吗 编辑:程序博客网 时间:2024/06/07 22:31
”将一个DAG(有向无环图)中所有顶点在不违反前置依赖条件规定的基础上排成线性序列的过程称为拓扑排序。”
在书上给了两个算法,一个是基于DFS,一个是基于队列统计入度来做。
其实我觉得这两个算法的根源,其实就在于一个顶点(当然啦,在实际应用中可能是任务、工程等等等等。。。。。。)它的前置条件条件有多少?
DFS的末端,其实就是一些前置条件尽可能多,注意,是尽可能多的点,因为你不断的深入,也就是说你DFS的末端是要经历了很多任务的完成才可以到达的,按照我们的原则,前置条件越多的任务应该最后完成,当然了,DFS的机制会让我们得到一个倒序的序列,我们只需要倒一下就好了。
而基于队列来统计入度,然后进行输出入度为0的点,再依次循环处理其余点的入度,其实也是这样的一种思想,依赖条件越多,越后完成、输出,依赖条件越少,就应该越先完成。
我觉得学习算法如果能够明白一个问题的背景、算法里面的思想、这才是精髓,这才是能够历久弥新的东西,才能让我们不断创新。
阅读全文
0 0
- 图论-拓扑排序(学习数据结构与算法分析 C++第三版—clifford A.Shaffer著)有感
- 关于Clifford A.Shaffer老师数据结构与算法分析中里用链表实现线性表的具体实现的感想
- 数据结构与算法(c++)--拓扑排序
- 数据结构与算法分析学习笔记(2)--拓扑排序
- 数据结构与算法(25)——拓扑排序
- 算法与数据结构--拓扑排序
- 【数据结构与算法】拓扑排序
- 数据结构与算法分析学习笔记---第三章(链表)
- 求最大子序列和问题(读《数据结构与算法分析——C语言描述》有感)
- c语言实现拓扑排序(《数据结构》算法7.12)
- 《数据结构与算法分析(c描述》—— 快速排序
- 《数据结构与算法分析(c描述)》—— 插入排序&希尔排序
- Python 数据结构与算法——拓扑排序
- 数据结构与算法11:拓扑排序
- 数据结构与算法之拓扑排序
- 数据结构与算法中的拓扑排序方法
- 《数据结构与算法分析》图论算法--邻接表与拓扑排序
- 《数据结构与算法分析--C++描述》(第三版)学习笔记系列一:BST的实现
- Lintcode178 Graph Valid Tree solution 题解
- 计算中英文混合字符串长度,中文算两个字符
- FreeBASIC学习笔记——8.1 指针的概念
- 帆软 取某个数据集的某个字段
- ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
- 图论-拓扑排序(学习数据结构与算法分析 C++第三版—clifford A.Shaffer著)有感
- android textView识别html标签
- bzoj2879 [Noi2012]美食节(动态加边费用流)
- Java进阶之路——从初级程序员到架构师,从小工到专家
- Maven的相关问题处理(ClassNotFoundException/NoClassDefFoundError)
- LR12脚本回放时显示图片窗口
- 分布式环境搭建redhat7+hadoop2.6.1+jdk1.8
- C++ void*用法记录
- 《Java编程技巧1001条》349条:获得浮点数的余数