第六章学习小结

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

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

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

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

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

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,一经查实,立即删除!

相关文章

大数据薪资一再飙升 学习大数据需要哪些基础?

2018年6月19日&#xff0c;备受关注的个人所得税法修正案草案迎来第七次大修&#xff0c;个税起征点由每月3500元提高至每月5000元(每年6万元)。对于大多数人来说这绝对是个好消息&#xff0c;但人们更愿意参加培训班实现高薪。近年来&#xff0c;随着互联网的飞速发展以及企业…

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

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

阿里云的物联网之路

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

不是所有人都懂这样做,你若做了就能高升!

有句话这样说的&#xff0c;成功的人往往都是做着别人不愿意或不知道的事情&#xff0c;懂得付出才会获得成功&#xff01; 同样的道理&#xff0c;身在职场&#xff0c;每个人都有一种被提拔&#xff0c;晋升的愿望。 不过&#xff0c;光想着没用&#xff0c;除了干好自身工…

面向对象-多态,反射

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

解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 报错如题&#xff1a; RollbackException: Transaction marked as rollbackOnly 2. 原因是在一个事物 (Transaction) 中有另外一个…

yii2 migrate 数据库迁移的简单分享

开发中经常会用到的方法小结&#xff1a; 1、./yii migrate xxx_xx 在表中插入某字段 &#xff1a; public function up(){$this->addColumn({{application_service}}, auditor, INT(10) NOT NULL COMMENT "审核人" AFTER user_id, CHANGE COLUMN status status t…

养不教 父母之过:10个不能靠老师解决的孩子教育问题

1、写字和握笔姿势。 如果你经历孩子成长的整个过程&#xff0c;你会感悟到&#xff0c;孩子写一手帅气的钢笔字&#xff0c;是非常有价值的技能。把字写好&#xff0c;是每一个家长的责任。如果你还年轻&#xff0c;不知道怎么教育孩子&#xff0c;那就从这一点开始吧。 记…

jpa : criteria 作排除过滤、条件中除去查出的部分数据、JPA 一个参数可查询多个字段

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS &#xff1a; mybatis 中也有对于 criteria 的使用&#xff0c;见另一文章&#xff1a;mybatis &#xff1a;Criteria 查询、条件过滤…

将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

将你的前端应用打包成docker镜像并部署到服务器&#xff1f;仅需一个脚本搞定1.前言前段时间&#xff0c;自己搞了个阿里云的服务器。想自己在上面折腾&#xff0c;但是不想因为自己瞎折腾而污染了现有的环境。毕竟&#xff0c;现在的阿里云已经没有免费的快照服务了。要想还原…

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; …

Linux学习第五篇之文件处理命令touch、cat、tac、more、less、head、tail

一、touch命令&#xff1a; 命令名称&#xff1a;touch 命令所在路径&#xff1a;/bin/touch 执行权限&#xff1a;所有用户 语法&#xff1a;touch [文件名] 功能描述&#xff1a;创建空文件 例子&#xff1a; touch leanring.file 说明&#xff1a;在当前目录下创建空文件l…

OpenCL 与 CUDA

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

DBMS (数据库管理系统) 是什么

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 数据库管理系统&#xff08;英语&#xff1a;database management system&#xff0c;缩写&#xff1a;DBMS&#xff09; 是一种针对对…

Eclipse4JavaEE安装SpringBoot

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

django中使用原生sql

django中使用原生sqlfrom django.db import connection cursor connection.cursor() cursor.execute("select * from xx where id1") row cursor.fetchone() users User.objects.raw("select * from user where namexx") for user in users: print(use…

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

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