《算法设计》三、图

 

对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矛盾。

 

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

 

posted @ 2017-02-24 12:14  Shiyu_Huang  阅读(232)  评论(0编辑  收藏  举报