基本图算法之图的表示——习题思路(2)
2015-12-24 11:43
344 查看
22.1-6 当采用邻接矩阵表示时,大多数图算法需要的时间都是Ω (V2),但也有一些例外,证明在给定了一个有向图G的邻接矩阵后,可以在O(V)时间内,确定G中是否包含一个通用的汇,即入度为|V|-1,出度为0的顶点。
对于G[i][j]=0,说明节点i到节点j没有边,节点i可能是通用汇点,继续判断i与其他顶点是否有边,右走j+1。G[i][j]=1,则i不可能是通用汇点,判断下一个节点,下走i+1。知道最后一行或最后一列停止,检查该节点是不是通用汇点。这样时间就是O(V),因为只有V次循环。
示意性伪码
对于G[i][j]=0,说明节点i到节点j没有边,节点i可能是通用汇点,继续判断i与其他顶点是否有边,右走j+1。G[i][j]=1,则i不可能是通用汇点,判断下一个节点,下走i+1。知道最后一行或最后一列停止,检查该节点是不是通用汇点。这样时间就是O(V),因为只有V次循环。
示意性伪码
universalsink(G) i=0 j=0 while(i<|V| and j<|v|) if G[i][j]==0 j=j+1 else if G[i][j]==1 i=i+1 if i==|v| return false if j==|v| check(G,i) check(G,k) for i=0 to|v| if G[k][i]!=0 return false for j=0 to|v| if j!=k and G[j][k]!=1 return false return true
相关文章推荐
- Android开发在任意类中获取当前屏幕宽高
- Convert short to byte[] in Java
- IOS中UITableViewCell使用详解
- mybatis 中insert语句报如下错误: Incorrect integer value: '' for column 'pic_len' at row 1
- java 写入文件没有到磁盘问题
- PostgreSQL数据库中的数据类型转换
- Spring 学习笔记 (II) 之后处理器和Resource
- jQuery实现网页顶部固定导航效果代码
- 人人都能用Python写出LSTM-RNN的代码!
- ORACLE字符集基础知识(NLS)
- [分享]Java中Byte与基础类型之间的转换
- 关于hsql查询话语
- 26设计模式之建造者模式
- Linux下libevent安装与示例
- ionic 2 添加service
- 从netty-example分析Netty组件续
- jQuery获取多种input值的方法
- ubuntu14.04中 gedit 凝视能显示中文,而source insight中显示为乱码的解决的方法
- 用内部类初始化 对象
- linux下安装mysql service与client rpm