从城市1到城市到城市3有很多条路,每条路的路况各不相同,所耗费的时间都标记在了箭头上,现在需要找出从1到3的最短路径。

有向图:意思是来回的路径值可以是不一样的

有权图:意思是每套路径的值可以是不一样的

package myalgorithm;
public class ShortPath {/*全局最短路径*/public int stepnum = 999;/*构建4*4路径图,-1表示此路不通*/int[][] graph = {{0 ,2 ,6 ,4},{-1,0 ,3 ,-1},{7 ,-1,0 ,1},{5 ,-1,12,0}};/*初始标记数组都为0*/public int[] mark = new int[graph.length];/*采用递归的DFS算法*/public void DFS(int cur, int length) {/*还没到3号车站,路径就已经够长了*/if (length>stepnum){return;}/*到达目的地3号车站*/if (cur == 2){if(length < stepnum){stepnum = length;}return;//找到之后立即返回,不再继续
        }//到下一个车站,需要遍历所有的车站,看看那个车站没有走过并且路是通的for(int i=0;i<4;i++){if(graph[cur][i] != -1 && mark[i] == 0){mark[i] = 1;//标记该点已经走过DFS(i,length+graph[cur][i]);mark[i] = 0;//取消该点的标记
            }}return;}public static void main(String[] args) {ShortPath my = new ShortPath();long start1 = System.currentTimeMillis();my.mark[0]= 1;my.DFS(0,0);long end1 = System.currentTimeMillis();System.out.println("DFS step: " + my.stepnum + " time:" + (end1-start1));}}

转载于:https://www.cnblogs.com/mingziday/p/4851830.html

深度优先算法解决有向有权图的最短路径问题相关推荐

  1. 带权图的最短路径算法(Dijkstra)实现

    一,介绍 本文实现带权图的最短路径算法.给定图中一个顶点,求解该顶点到图中所有其他顶点的最短路径 以及 最短路径的长度.在决定写这篇文章之前,在网上找了很多关于Dijkstra算法实现,但大部分是不带 ...

  2. 利用广度优先和深度优先算法解决迷宫问题【算法设计与分析】<图搜索问题>

    实验问题: 给定一个n*n的迷宫,要求利用广度优先和深度优先算法解决迷宫问题 问题分析: 对于此问题首先要明确搜索顺序 可以分为两种方法求解问题:1.广度优先算法2.深度优先算法 (1)对于深度优先算 ...

  3. 采用矩阵+深度优先算法解决迷宫问题

    所谓深度优先算法,百科的解答是这样的 深度优先搜索算法(Depth-First-Search),简称DFS,是搜索算法的一种.是沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所有边都己被 ...

  4. 【数据结构】什么是图的最短路径?实现最短路径的2种算法?

    目录 一.什么是最短路径? 二.实现最短路径的2种算法? 三.最短路径 1.某个顶点到其余各顶点的最短路径:迪 杰斯特拉(Dijkstra)算法 2.每一对顶点之间的最短路径: 佛洛依德(Floyed ...

  5. Java数据结构与算法:无向图,有向图,带权图,图的遍历,最小生成树

    文章目录 无向图 有向图 带权图 图的遍历 广度优先遍历 深度优先遍历 最小生成树 无向图 前面了解到树是有单一根结点的非线性结构,图(graph)也是一种非线性结构,其中的结点可以与许多其他的结点相 ...

  6. 数据结构最短路径例题_数据结构算法实验8图的最短路径问题附源代码.doc

    浙江大学城市学院实验报告 课程名称 数据结构与算法 实验项目名称 实验八 图的最短路径问题 实验成绩 指导老师(签名 ) 日期 实验目的和要求 掌握图的最短路径概念. 理解并能实现求最短路径的DijK ...

  7. 十五数码难题 A*算法及深度优先算法实现

    一.问题描述 二.算法分析 在搜索的每一步都利用估价函数 f(n)= g(n)+h(n)对 Open 表中的节点进行排序表中的节点进行排序, 找出一个最有希望的节点作为下一次扩展的节点.且满足条 件: ...

  8. 漫画:如何求图的最短路径? | 技术头条

    作者 | 程序员小灰 本文经授权转载自程序员小灰(ID:chengxuyuanxiaohui) -----  第二天  ----- 小灰的思路如下: 第一步,利用迪杰斯特拉算法的距离表,求出从顶点A出 ...

  9. 学习笔记: 图的最短路径

    图的最短路径 带权图的最短路径 从某顶点(源点)出发到另一顶点(目的点)的路径中,有一条各边(或弧)权值之和最小的路径称为最短路径. 从单源点到其余各点的最短路径 迪杰斯特拉算法(Dijkstra) ...

最新文章

  1. 计算机中英语GAI缩写,等等英语_英语中“等等”缩写成为etc吗要加一点吗全拼是什么谢谢大家_淘题吧...
  2. 基于VUE的前端crypto-js aes加密与解密
  3. python爬虫怎么赚钱-终于找到python爬虫怎么挣钱
  4. 最优化方法:拉格朗日乘数法(转)
  5. 基于HTML/CSS/JS的动态元素周期表
  6. Java + OpenCV 实现更换背景色 (以 证件照 蓝色幕布替换成红色背景 为例)(JavaCV)
  7. 1209磊磊的随机数
  8. Windows Azure 解决方案系列: Real World Windows Azure: 与微软杰出工程师, Sean Nolan的访谈...
  9. layui框架轮播图实现轮播图片自适应视口缩放
  10. 视频(mp4文件)批量转换成动图(gif文件)
  11. 从放弃本专业到直播编程,这女孩都经历了些什么?
  12. 你知道我国一共赠送了多少只熊猫给外国吗?来看看这个数据可视化项目
  13. Linux操作系统之安装Linux虚拟机
  14. kubernetes 401 You have been logged out because your token has expired
  15. hdu5804(BestCoder Round #86 A)
  16. 跟着明星在元宇宙炒房,靠谱吗?
  17. Fedora 14 root权限登录
  18. QDir 类 -属性详解
  19. 基于MaxScale中间件的MySQL读写分离
  20. 你想知道的DCMM认证评估,最全回答来了

热门文章

  1. mysql not in优化_98%的人不知道的MySQL优化器原理
  2. 计算机三级标题,计算机三级考试题目
  3. android 宽度动画,android – ObjectAnimator对LinearLayout宽度进行动画处理
  4. 虎牙服务器维护中,虎牙主播老赵,魔兽世界怀旧服第一义士!维护服务器清理挂机玩家...
  5. oracle 表名拼接_Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接)...
  6. java通信rs485_基于VB6.0与485仪表的Modbus RTU通信(含代码)
  7. 宁波大学考研复试C语言设计,2021年宁波大学考研复试名单及复试方案汇总
  8. C语言学习笔记---断言函数assert()
  9. Deformable ConvNets自己的理解
  10. php上传文件 报的错误 $_FILES[‘file’]['error']