当前位置: 首页 > news >正文

广州百度网站建设公司东莞天助网的网站

广州百度网站建设公司,东莞天助网的网站,松江做公司网站,品牌网站建设有什么作用无权图的最短路径思路#xff1a;无权图的最短路径也就是要求两点之间最少几跳可达#xff0c;那么我们可以这样#xff0c;用广度遍历#xff0c;从起点开始一层层遍历#xff0c;如果第一次遍历到终点#xff0c;那么肯定是最短路径。public static void findPath(int …无权图的最短路径思路无权图的最短路径也就是要求两点之间最少几跳可达那么我们可以这样用广度遍历从起点开始一层层遍历如果第一次遍历到终点那么肯定是最短路径。public static void findPath(int start,int end){//创建一个队列来存储LinkedList VNode queuenew LinkedList();queue.offer(nodes[start]);while(!queue.isEmpty()){VNode vnodequeue.peek();isVisit[vnode.index]true;BNode bnodevnode.bnode;//如果结束点已经访问 跳出循环if(isVisit[end])break;//如果他的邻节点都访问或者没有邻节点 跳出循环while(bnode!null){//如果邻节点还没被访问访记录他的上一节点否则不进行记录。这样的话即使到了下一跳有这个顶点记录的也是更的短路径比如说起点A 邻节点有BCD B的邻节点是C此时遍历A的邻节点C的时候就记录C的上一节点是A下次遍历B的领节点因为C已经被访问所以C记录的上一节点还是A这样就保证了最短路径。if(!isVisit[bnode.index]){//用于记录路径nodes[bnode.index].beforevnode;queue.offer(nodes[bnode.index]);isVisit[bnode.index]true;}bnodebnode.next;}queue.pop();}}public static void printPath(int end){VNode nodenodes[end];int count0;String path;while(node!null){pathnode.indexpath;nodenode.before;count;}System.out.println(path长度为:(count-1));}Dijkstra求有权图最短路径Dijkstra思路依次找到最短路径比如起点A先找到距离A路径最短的点比如BAB路径长为1这时候接着往下找比大于等于1的最短路径。通俗讲就是小明很贪心每一次都找挑最短路径。import java.util.Scanner;public class Dijkstra {public static void main(String[] args) {final int MAXInteger.MAX_VALUE;Scanner innew Scanner(System.in);int vNumin.nextInt();int edgeNumin.nextInt();//二维数值用来表示图int graphic[][]new int [vNum][vNum];//flag[v][w]标识 从v0到v点 w是不是在路径上用于记录路径boolean [][] pathnew boolean [vNum][vNum];//标识是否访问过boolean [] isVisitnew boolean[vNum];//v0到各点的最短路径int distance[]new int [vNum];//进行初始化任意两个点的距离无限大for (int i 0; i for (int j 0; j vNum; j) {graphic[i][j]MAX;}}//读取数据设置权值for (int i 0; i edgeNum; i) {graphic[in.nextInt()][in.nextInt()]in.nextInt();}//起点int v0in.nextInt();//结束点int endin.nextInt();in.close();//进行初始化isVisit[v0]true;for (int i 0; i distance.length; i) {distance[i]graphic[0][i];if(graphic[v0][i]{path[i][i]true;path[i][v0]true;}}int v-1;//要找到vNum-1个顶点循环次数为vNum-1for (int i 1; i vNum; i) {int minInteger.MAX_VALUE;//遍历找到目前v0到其他点的最短距离的点,依次找到离起点最近的点for (int j 0; j vNum; j) {if(!isVisit[j]distance[j]{mindistance[j];vj;}}isVisit[v]true;//新的点v加入重新更新从v0到其他点的最短距离for (int k 0; k distance.length; k) {if(!isVisit[k]graphic[v][k]mingraphic[v][k]){distance[k]mingraphic[v][k];//当前的路径是从v到w所以到v0到v的最短路径上的点也是v0到w上的点System.arraycopy(path[v], 0, path[k], 0, path[v].length);path[k][k]true;}}}System.out.print(路径为);for (int i 0; i vNum; i) {if(path[end][i])System.out.print(i );}System.out.println(路径长为distance[end]);}}测试数据6 80 4 300 2 100 5 1001 2 52 3 504 5 604 3 203 5 100 3输出路径为0 3 4 路径长为50Floyd算法求有权图最小路径Floyd思路floyd算法用的dp的思想核心代码for (int k 0; k vNum; k) {if(distance[i][j]distance[i][k]distance[k][j]){distance[i][j]distance[i][k]distance[k][j];indexk;}}求i到j的最短路径通过遍历每一种情况从i跳到k再有k跳到j遍历每一个可能的k值最后求得到最小路径。import java.util.Scanner;public class Floyd {public static void main(String[] args) {final int MAX10000;Scanner innew Scanner(System.in);int vNumin.nextInt();int edgeNumin.nextInt();//二维数值用来表示图int distance[][]new int[vNum][vNum];int [][] pathnew int [vNum][vNum];//进行初始化任意两个点的距离无限大for (int i 0; i for (int j 0; j vNum; j) {distance[i][j]MAX;if(ij)distance[i][j]0;}}//读取数据设置权值for (int i 0; i edgeNum; i) {distance[in.nextInt()][in.nextInt()]in.nextInt();}//起点int v0in.nextInt();//结束点int endin.nextInt();in.close();for (int i 0; i vNum; i) {for (int j 0; j int indexi;for (int k 0; k vNum; k) {if(distance[i][j]distance[i][k]distance[k][j]){distance[i][j]distance[i][k]distance[k][j];indexk;}}path[i][j]index;}}System.out.println(最短路径长为:distance[v0][end]);System.out.print(路径为:end );while(true){if(endv0)break;System.out.print(path[v0][end] );endpath[v0][end];}}}测试数据6 80 4 300 2 100 5 1001 2 52 3 504 5 604 3 203 5 100 3输出最短路径长为:50路径为:3 4 0我觉得分享是一种精神分享是我的乐趣所在不是说我觉得我讲得一定是对的我讲得可能很多是不对的但是我希望我讲的东西是我人生的体验和思考是给很多人反思也许给你一秒钟、半秒钟哪怕说一句话有点道理引发自己内心的感触这就是我最大的价值(这是我喜欢的一句话也是我写博客的初衷)
http://www.pierceye.com/news/559814/

相关文章:

  • 深圳网站建设中心手机端网站搭建
  • 提取卡密网站怎么做怎么更换网站的域名
  • 网站开发接单网站站内推广方案
  • 网站建设网站建什么网站做二手货车
  • 如何做淘宝客的网站网站建设 源代码
  • 建设部网站 造价全世界足球排名前十位
  • 有机农产品网站开发方案新闻资讯平台有哪些
  • wap网站建设哪家好酒店网络推广怎么做
  • 专业做电脑系统下载网站聚名网域名怎么备案
  • 赚钱的网站做任务南通优化网站价格
  • 个人能进行网站开发孟村网 网站
  • 上海公司做网站的韩国购物网站模板
  • 快速建站教程网视频网站开发分析
  • 一个公司的网站怎么做的北京信息网
  • 撰写网站建设技术解决方案招聘平面设计
  • 网站的数据备份和恢复我想开网站
  • 网站建设情况报告范文wordpress用户注册提醒
  • 湛江商城网站制作公司闵行建设机械网站
  • 做网站seo赚钱吗平面广告设计作品集
  • 购物中心网站建设六安政务中心网站
  • 做网站公司赚钱吗?抖音小程序推广怎么挂才有收益
  • 滁州网站建设建设银行租房平台网站6
  • h5自适应网站模板下载阿里云域名注册好了怎么做网站
  • 德州做网站多少钱网站实现搜索功能
  • 帝国cms7.0网站搬家换域名换空间等安装教程万网云虚拟主机上传网站
  • 网站建设推广接单语wordpress 所有文章
  • 申请域名后怎么做网站网站建设与维护中国出版社
  • 洛阳做网站那家好课程网站建设开题报告
  • 到哪里建网站商务网站建设学期总结
  • 铜陵app网站做营销招聘网站开发公司需要投入什么资源