• 图算法


    百度一查,上来就是什么各种搜索,晕。。

    首先不是应该说说图 是什么吗? 难道是我们平时说的图片?显然不是,图指的是 好多点以及他们之间的连线(图中定义是 边),这些点和线组合起来我们称之为图。 

    知道了什么是图,那么这个图能做什么用呢?我首先想到的就是地图了: 每个路口就是点,路口到另一个路口的路就是线了。还有就是我们的网络了,路由器就是点,网线就是线。

    然后是算法: 地图我想到的是如何走最短的路到达另一个路口, 网络就是如何最短或则最快访问到我要访问的服务器。。

    如何把具体的路口和路 描述为电脑语言?

    第一步: 如何表示地图 

    第二步: 如何找到最短路径或者最快访问。

    图的表示:邻接链表(边比较少的稀疏图), 邻接矩阵(边数量接近点个数平方的稠密图 )

    1. 邻接链表: 就是把一个节点相连的节点用 链表存储起来(可以理解为这些节点具有相同的hashcode),  所有节点 对应的 链表 存储到数组中, 这种图的表示方法即为邻接链表。存储空间最大 2E(E表示边数,V表示点数)

    b 就是图a 的 邻接链表

     2. 邻接矩阵: 类似于多维数组,维度由点数决定, 数组内的值用 0和1 表示,1表示有线连接。 占用空间为固定 V的2次方(V是点数),所以当点数较少时,建议使用该种图表示法。

    二、 图的搜索算法

     算法有: 广度搜索算法  , 深度搜索算法

    1. 广度搜索算法: 就是按层进行搜索, 起点为A ,搜索a 的所有直接子节点,然后搜索这些子节点的直接 子节点,依次进行,直到所有节点都被搜索到。

     参照 https://www.cnblogs.com/skywang12345/p/3711483.html

    2. 深度优先搜索: 以一个顶点A为起点,访问它的其中一个子节点,然后访问该子节点的子节点,依次访问到最后一个子节点。然后回到最后字节点的上个节点,看它有没有其他节点,如果有,

     按照上述步骤依次走完所有节点,直到A 的所有子节点(包含子子节点)都被访问。 如果图中还有没有被访问的点,选取一个,继续上述步骤,直至图中所有节点被访问。

    参照 https://www.cnblogs.com/skywang12345/p/3711483.html

      

  • 相关阅读:
    Lock wait timeout exceeded; try restarting transaction
    数据库三大范式
    数据库内联和外联
    [PHP相关教程] laravel5.1学习手册[一]基本开发环境配置
    轻松实现Ecshop商城多语言切换
    php 异步提交表单
    [解决方法] php大form用post方式传递数据过多被截取的问题
    HTML5日期输入类型(date)
    PHP 数字转化为自定义长度的字符串[前插后入]
    网站应用微信登录开发指南
  • 原文地址:https://www.cnblogs.com/zhangchenglzhao/p/10113088.html
Copyright © 2020-2023  润新知