VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。
分享一个大神的人工智能教程零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!
图形结构是一种在生活以及工业中很常用的C数据结构構。有着关系明确、运算快捷的优点但是学习难、入门起点高,对数学能力有很高的要求
图的遍历和树的遍历类似。首先这里就不再贅述图的逻辑结构了有向图和无向图这里就先假设为邻接矩阵表示,直观的体现下图的存储结构的特点邻接表不过就是有入边和出边來体现图的点集和边集的特点。这两种逻辑结构其实并没有太大的区别
就像树有三种遍历方式一样(前序遍历、中序遍历、后序遍历),图也有两种遍历方式分别是广度优先算法和深度优先算法,有的教材也称之为广搜和深搜
通过图的逻辑结构可以看出,图的任意定點都可能和其余的顶点相邻接所以我们在访问了某个节点后,可能可以通过这个结点回到顶点为了避免重复,我们可以设置一个可爱嘚布尔数组来帮助我们标记这个顶点是否被访问过如果被访问过,我们就设该值为true否则为假。其中这个布尔数组是以结点的序号为下標设立的也就是说顶点的下标和布尔数组中的索引是一一对应的。
(本算法对无向图和有向图都适用)
深度优先算法类似于树的前序遍曆算法是基于回溯法的思想实现的。我们首先可以随机选定一个顶点从该顶点出发,任意指定下一条路径(一般是先往左),然后访问過的结点在布尔数组中改变其值遍历时,判断该节点是否被访问如果没有被访问,就回到上一层结点再以上一层结点为顶点,重复該算法直到所有的布尔数组都为真为止(直到所有数组都被访问过为止)。
很显然我们可以看出图的深度优先算法是一种递归的算法。
1、定义数组来判断结点是否被访问
#以邻接矩阵为存储结构进行DFS深搜
#以邻接表为存储结构进行DFS深搜。
邻接矩阵深搜时间复杂度O(n2);邻接表深搜时间复杂度O(n+e);
主要的还是邻接表有一个链式查找的过程导致有一个搜索的开销e(节点个数)。
这种算法类似于树的层次遍历其基本思想是:“从一个顶点出发。如果该顶点没有被访问过那就依次访问和该顶点所有邻接的顶点,并标记为已被访问过递归这種操作,直到所有节点都被访问过为止部分代码和DFS算法差不多。只有操作上略有不同
1、定义数组来判断结点是否被访问
#以邻接矩阵为存储结构的广度优先遍历算法
#以邻接表为存储结构的广度优先遍历算法