深度优先算法解决有向有权图的最短路径问题
从城市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
深度优先算法解决有向有权图的最短路径问题相关推荐
- 带权图的最短路径算法(Dijkstra)实现
一,介绍 本文实现带权图的最短路径算法.给定图中一个顶点,求解该顶点到图中所有其他顶点的最短路径 以及 最短路径的长度.在决定写这篇文章之前,在网上找了很多关于Dijkstra算法实现,但大部分是不带 ...
- 利用广度优先和深度优先算法解决迷宫问题【算法设计与分析】<图搜索问题>
实验问题: 给定一个n*n的迷宫,要求利用广度优先和深度优先算法解决迷宫问题 问题分析: 对于此问题首先要明确搜索顺序 可以分为两种方法求解问题:1.广度优先算法2.深度优先算法 (1)对于深度优先算 ...
- 采用矩阵+深度优先算法解决迷宫问题
所谓深度优先算法,百科的解答是这样的 深度优先搜索算法(Depth-First-Search),简称DFS,是搜索算法的一种.是沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所有边都己被 ...
- 【数据结构】什么是图的最短路径?实现最短路径的2种算法?
目录 一.什么是最短路径? 二.实现最短路径的2种算法? 三.最短路径 1.某个顶点到其余各顶点的最短路径:迪 杰斯特拉(Dijkstra)算法 2.每一对顶点之间的最短路径: 佛洛依德(Floyed ...
- Java数据结构与算法:无向图,有向图,带权图,图的遍历,最小生成树
文章目录 无向图 有向图 带权图 图的遍历 广度优先遍历 深度优先遍历 最小生成树 无向图 前面了解到树是有单一根结点的非线性结构,图(graph)也是一种非线性结构,其中的结点可以与许多其他的结点相 ...
- 数据结构最短路径例题_数据结构算法实验8图的最短路径问题附源代码.doc
浙江大学城市学院实验报告 课程名称 数据结构与算法 实验项目名称 实验八 图的最短路径问题 实验成绩 指导老师(签名 ) 日期 实验目的和要求 掌握图的最短路径概念. 理解并能实现求最短路径的DijK ...
- 十五数码难题 A*算法及深度优先算法实现
一.问题描述 二.算法分析 在搜索的每一步都利用估价函数 f(n)= g(n)+h(n)对 Open 表中的节点进行排序表中的节点进行排序, 找出一个最有希望的节点作为下一次扩展的节点.且满足条 件: ...
- 漫画:如何求图的最短路径? | 技术头条
作者 | 程序员小灰 本文经授权转载自程序员小灰(ID:chengxuyuanxiaohui) ----- 第二天 ----- 小灰的思路如下: 第一步,利用迪杰斯特拉算法的距离表,求出从顶点A出 ...
- 学习笔记: 图的最短路径
图的最短路径 带权图的最短路径 从某顶点(源点)出发到另一顶点(目的点)的路径中,有一条各边(或弧)权值之和最小的路径称为最短路径. 从单源点到其余各点的最短路径 迪杰斯特拉算法(Dijkstra) ...
最新文章
- 计算机中英语GAI缩写,等等英语_英语中“等等”缩写成为etc吗要加一点吗全拼是什么谢谢大家_淘题吧...
- 基于VUE的前端crypto-js aes加密与解密
- python爬虫怎么赚钱-终于找到python爬虫怎么挣钱
- 最优化方法:拉格朗日乘数法(转)
- 基于HTML/CSS/JS的动态元素周期表
- Java + OpenCV 实现更换背景色 (以 证件照 蓝色幕布替换成红色背景 为例)(JavaCV)
- 1209磊磊的随机数
- Windows Azure 解决方案系列: Real World Windows Azure: 与微软杰出工程师, Sean Nolan的访谈...
- layui框架轮播图实现轮播图片自适应视口缩放
- 视频(mp4文件)批量转换成动图(gif文件)
- 从放弃本专业到直播编程,这女孩都经历了些什么?
- 你知道我国一共赠送了多少只熊猫给外国吗?来看看这个数据可视化项目
- Linux操作系统之安装Linux虚拟机
- kubernetes 401 You have been logged out because your token has expired
- hdu5804(BestCoder Round #86 A)
- 跟着明星在元宇宙炒房,靠谱吗?
- Fedora 14 root权限登录
- QDir 类 -属性详解
- 基于MaxScale中间件的MySQL读写分离
- 你想知道的DCMM认证评估,最全回答来了
热门文章
- mysql not in优化_98%的人不知道的MySQL优化器原理
- 计算机三级标题,计算机三级考试题目
- android 宽度动画,android – ObjectAnimator对LinearLayout宽度进行动画处理
- 虎牙服务器维护中,虎牙主播老赵,魔兽世界怀旧服第一义士!维护服务器清理挂机玩家...
- oracle 表名拼接_Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接)...
- java通信rs485_基于VB6.0与485仪表的Modbus RTU通信(含代码)
- 宁波大学考研复试C语言设计,2021年宁波大学考研复试名单及复试方案汇总
- C语言学习笔记---断言函数assert()
- Deformable ConvNets自己的理解
- php上传文件 报的错误 $_FILES[‘file’]['error']