《算法设计》三、图

 

对DAG进行拓扑排序的朴素算法:

上面算法简单来说就是每个节点维护一个入度数,把入度数为0的节点加入集合S,每次从S中选取节点删除,并更新相应节点的入度,把入度变为0的节点加入S。

 

证明:反证法。如果G不是连通图,且有k个连通子图,则k>1。由于每个点都连着另外n/2个点,那么这个点和另外n/2至少算一个连通图,也就是说G中一个连通图中点的数目至少为1+n/2。那么G中至少有(1+n/2)k个点,所以(1+n/2)k<=n,即k<=1,这与k>1矛盾。

问题:下列命题是否成立?

原文地址:https://www.cnblogs.com/huangshiyu13/p/6438001.html