第六章学习小结

      本章学习了图的结构及应用,

      首先是图的分类,图分为无向图、有向图、完全图、连通图、强连通图、带权图、稀疏图、稠密图等等。

      图的存储方式有两大类,以边集合方式的表示法和以链接方式的表示法。其中,以边集合方式表示的为邻接矩阵(借助二维数组来表示元素之间的关系,实现较为简单),以链接方式表示的包括邻接表、十字链表和邻接多重表(属于链式存储结构,实现较为复杂)。

      接下来是图的遍历算法,图的遍历算法有两种,包括深度优先搜索遍历和广度优先搜索遍历。

      深度优先搜索遍历类似于树的先序遍历,借助于栈结构来实现。

void DFS(Graph a,int b) //深度优先搜索 
  {visited[b]=true;    //令顶点对应的visited数组为true,表示该顶点已被访问过 cout<<b<<" ";   //输出顶点编号及空格 for(int i=0;i<a.vexnum;i++){if(a.arcs[b][i]==1 && visited[i]==false)DFS(a,i);   //若顶点对应的邻接点未被访问,则递归调用DFS函数 
      }}
DNF

      广度优先搜索遍历类似于树的层次遍历,借助队列结构来实现。

void BFS(Graph a,int b) //广度优先搜索 
 {int temp;   //定义参数 while(!q.empty())   //若队列不为空 
      {temp=q.front(); //取队头元素值为temp q.pop();    //队头元素出队 
               cout<<temp<<" ";    //输出temp值及空格 for(int i=0;i<a.vexnum;i++){if(a.arcs[temp][i]==1 && visited[i]==false) //若顶点对应的邻接点未被访问,则邻接点入队 
             {q.push(i);  //邻接点入队 visited[i]=true;    //邻接点对应的visited数组取true,表示已被访问 
             }}visited[b]=true;    //第一次入队的顶点对应的visited数组值取true,表示已被访问
     }}
BFS

      然后是图的应用,比较常用的包括构造最小生成树算法、求解最短路径算法

      构造最小生成树的算法有普里姆算法和克鲁卡斯算法,其中

      普里姆算法的核心是归并点,时间复杂度是O(n2),适用于稠密网

      克鲁斯卡尔算法是归并变,时间复杂度是O(elog2e),适用于稀疏网。

      最短路径算法包括迪杰斯特拉算法和弗洛伊德算法,其中

      迪杰斯拉特算法是求从某个源点到其余各顶点的最短路径,按路径长度递增的次序产生最短路径,时间复杂度为O(n2)

      弗洛伊德算法是求每一对顶点之间的最短路径,时间复杂度为O(n3)

      个人感觉图这一章概念很多,算法也很多,要多花时间看书,弄懂书上的概念和算法。

 

转载于:https://www.cnblogs.com/likangwenn/p/10891478.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea 玩转 码云 -- idea安装码云插件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在git盛行的今天&#xff0c;码云成为中国程序员的第二github&#xff0c;而且还可以免费使用私人空间。下面就开始码云之旅吧。 0.创建…

阿里云的物联网之路

阿里云的物联网之路 作者 | 刘洪峰 责编 | 唐小引 本文首发于 CSDN 微信&#xff08;ID&#xff1a;CSDNnews&#xff09; 原文链接 未来十到二十年&#xff0c;大家基本已经形成了一个共识&#xff0c;那便是新格局的奠定将由 AI 和物联网技术来支撑。放眼国内&#xff0c;在…

面向对象-多态,反射

抽象父类 # 抽象父类&#xff1a;拥有抽象方法(子类共有的方法&#xff0c;但是父类不能有具体的实现体)的父类 # 抽象方法&#xff1a;方法名是具体的&#xff0c;但是实现体是抽象的(在子类中重写来具象化) ​ # 注意点&#xff1a;有抽象方法的父类不能被实例化&#…

CVPR2014: DeepID解读

上周五就要发的&#xff0c;拖........拖.......拖到现在&#xff0c;文中有不准确的地方&#xff0c;欢迎批评指正。DeepID是一种特征提取的算法&#xff0c;由港中文汤晓鸥团队于2014年提出&#xff0c;发表于CVPR2014。其应用领域是人脸识别的子领域——人脸验证&#xff0c…

成大事必备9种能力 9种手段 9种心态(图)

成大事必备9种能力 1、摆正心态&#xff0c;敢于面对现实 对于那些不停地抱怨现实恶劣的人来说&#xff0c;不能称心如意的现实&#xff0c;就如同生活的牢笼&#xff0c;既束缚手脚&#xff0c;又束缚身心&#xff0c;因此常屈从于现实的压力&#xff0c;成为懦弱者;而那些…

解决:A component required a bean of type ‘javax.jms.Queue‘ that could not be found.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 情景描述&#xff1a;只是想简单写个 ActiveMQ 的小样&#xff0c;启动服务却报错&#xff1a; Error starting ApplicationContext…

【计算机视觉】OpenCV篇(3) - 图像几何变换(仿射变换/透视变换)

图像的几何变换从原理上看主要包括两种&#xff1a;基于23矩阵的仿射变换&#xff08;平移、缩放、旋转和翻转等&#xff09;、基于33矩阵的透视变换。 仿射变换基本的图像变换就是二维坐标的变换&#xff1a;从一种二维坐标(x,y)到另一种二维坐标(u,v)的线性变换&#xff1a; …

OpenCL 与 CUDA

根据网站资料&#xff0c;简单地汇编一下CUDA与OpenCL的区别。如有错误请指出。 题外话&#xff1a; 美国Sandia国家实验室一项模拟测试证明&#xff1a;由于存储机制和内存带宽的限制&#xff0c;16核、32核甚至64核处理器对于超级计算机来说&#xff0c;不仅不能带来性能提升…

Eclipse4JavaEE安装SpringBoot

第一步&#xff1a;下载SpringBoot SpringBoot官网下载链接 第二步&#xff1a;在Eclipse里进行安装 打开Eclipse&#xff0c;菜单栏Help -》Install New Software&#xff0c;进入下图界面&#xff0c;点击Add 设置Name和Location&#xff0c;Name看自己喜好&#xff0c;Locat…

从零开始玩转 logback、完整配置详解

官网地址&#xff1a;https://logback.qos.ch/manual/index.html 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 概述 LogBack是一个日志框架&#xff0c;它与Log4j可以说是同出一源&a…

ActiveMQ_Windows版本的安装部署

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1, 保证电脑上安装了jdk6以上版本的java&#xff0c;并配置了好环境变量 &#xff1b; 2, 官方下载地址&#xff1a;http://activemq.a…

如何将markdown转换为wxml

话说我要为技术博客写一个小程序版&#xff0c;我的博客解决方案是 hexo github-page&#xff0c;格式当然是技术控们喜欢的 markdown 了 。但小程序使用的却是独有的模版语言 WXML。我总不能把之前的文章手动转换成小程序的 wxml 格式吧&#xff0c;而网上也没完善的转换库&a…

巧妙喝水打败多种疾病

喝水&#xff0c;我们每天都会做的一件事&#xff0c;殊不知&#xff0c;喝水得当能打败多种疾病问题! 方法/步骤 一、很多人都听说过早晨喝一杯水对身体有好处&#xff0c;有人喝盐水?有人喝蜂蜜水?还有人为了美白喝柠檬水?到底喝什么水最好呢?人体经过了一宿的代谢&…

git 几个commit点合并成一个commit点

在用git做版本控制器的时候&#xff0c;经常会遇到以下情况&#xff1a; 1、在做1个功能的时候&#xff0c;你自己觉得代码没问题了&#xff0c;就本地commit&#xff0c;然后提交代码&#xff0c;在gitlab上发起和并请求&#xff0c;老大看完之后&#xff0c;觉得你还有修改的…

深入浅出 消息队列 ActiveMQ

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、 概述与介绍 ActiveMQ 是Apache出品&#xff0c;最流行的、功能强大的即时通讯和集成模式的开源服务器。ActiveMQ 是一个完全支持JM…

2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) - 4.28

赛后补了几道 赛中我就写了两个... A - Altruistic AmphibiansGym - 101933A 看了眼榜没几个人做。就没看。 最后发现就是一个DP&#xff08;但是我觉得复杂度有点迷&#xff09; 题意&#xff1a;$n$只青蛙有参数$l,w,h$分别表示弹跳力&#xff0c;体重&#xff0c;身高&#…

消息队列技术介绍 : ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ

一、 消息队列概述 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可…

python爬虫学习之页面登陆

爬虫学习的一点心得 登陆主要有3种方法&#xff1a;使用selenium&#xff0c;cookies&#xff0c;模拟表单登陆 个人对于一般情况使用cookies登陆 可以实现一次手动&#xff0c;长期自动&#xff0c;可以绕过登陆&#xff08;登陆的相关信息密码&#xff0c;账号等会存于cookie…

消息队列 应用场景 解析

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 另外腾讯云-云社区还有一文不允许转载&#xff0c;但内容挺好的&#xff1a;https://cloud.tencent.com/developer/article/1006035 分布…

利用memcached实现CAS单点登录集群部署

前言&#xff1a;利用memcached实现CAS单点登录集群部署 负载均衡&#xff1a;将接口请求的有状态性变成无状态性。是我们在实现负载均衡时必要要解决的问题。以应用接口的session状态为例&#xff0c;一般解决方法都是将session数据和应用进行剥离&#xff0c;session数据统一…