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

宜宾网站建设优化seo深圳

宜宾网站建设,优化seo深圳,中国100强排名企业名单,客户网站 备案拓扑排序-117. 软件构建 思路:拓扑排序是经典的图论问题。给出一个有向图,把有向图转成线性的排序就叫拓扑排序,拓扑排序也要检测有向图是否有环,即存在循环依赖的情况,因为这种情况是不能做线性排序的,所…

拓扑排序-117. 软件构建

思路:拓扑排序是经典的图论问题。给出一个有向图,把有向图转成线性的排序就叫拓扑排序,拓扑排序也要检测有向图是否有环,即存在循环依赖的情况,因为这种情况是不能做线性排序的,所以拓扑排序也是图论中判断有向无环图的常用方法。

实现拓扑排序的算法有两种:卡恩算法(BFS)和DFS。一般来说只需要掌握 BFS (广度优先搜索)就可以了。

应用场景:大学排课,先上A课才能上B课,上了B课才能上C课,上了A课才能上D课等等,要求规划出一条完整的上课顺序。

核心思想

拓扑排序时应该优先找 入度为 0 的节点,只有入度为0才是出发节点。
拓扑排序的过程:

  • 找到入度为0 的节点,加入结果集;
  • 将该节点从图中移除;
    循环以上两步,直到 所有节点都在图中被移除了。如果我们发现结果集元素个数 不等于 图中节点个数,我们就可以认定图中一定有 有向环!

代码实现

import java.util.*;
public class Main{public static void main (String[] args) {Scanner scan=new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();//存放文件之间的映射关系List<List<Integer>> umap=new ArrayList<>();for(int i=0;i<n;i++) umap.add(new ArrayList<>());//文件的入度int[] inDegree=new int[n];for(int i=0;i<m;i++){int s=scan.nextInt();int t=scan.nextInt();umap.get(s).add(t);inDegree[t]++;}Queue<Integer> queue=new LinkedList<>();//找到入度为零的节点加入队列for(int i=0;i<n;i++){if(inDegree[i]==0){queue.add(i);}}List<Integer> result=new ArrayList<>();while(!queue.isEmpty()){int cur=queue.poll();result.add(cur);for(int file:umap.get(cur)){inDegree[file]--;if(inDegree[file]==0) queue.offer(file);}}if(result.size()==n){for(int i=0;i<result.size();i++){System.out.print(result.get(i));if(i<result.size()-1) System.out.print(" ");}}else{System.out.println(-1);}}
}

dijkstra(朴素版)-47. 参加科学大会

最短路是图论中的经典问题即:给出一个有向图,一个起点,一个终点,问起点到终点的最短路径。

dijkstra算法:在有权图(权值非负数)中求从起点到其他节点的最短路径算法。

  • dijkstra 算法可以同时求 起点到所有节点的最短路径
  • 权值不能为负数

与prim算法类似,dijkstra 算法同样是贪心的思路,不断寻找距离源点最近的没有访问过的节点。

dijkstra三部曲:
第一步,选择距离源点最近且未被访问过的节点
第二步,被标记改节点已被访问
第三步,更新未访问节点到源点的距离(即更新minDist数组)

代码实现

初始化-minDist数组数值初始化为int最大值。源点(节点1) 到自己的距离为0,所以 minDist[1] = 0;此时所有节点都没有被访问过,所以 visited数组都为0。

import java.util.*;
public class Main{public static void main (String[] args) {Scanner scan=new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();int[][] grid=new int[n+1][n+1];for(int i=0;i<=n;i++){Arrays.fill(grid[i],Integer.MAX_VALUE);}for(int i=0;i<m;i++){int s=scan.nextInt();int t=scan.nextInt();int k=scan.nextInt();grid[s][t]=k;}int[] minDist=new int[n+1];Arrays.fill(minDist,Integer.MAX_VALUE);boolean[] visited=new boolean[n+1];//源点到源点的距离为0minDist[1]=0;for(int i=1;i<=n;i++){int cur=1;int minVal=Integer.MAX_VALUE;for(int j=1;j<=n;j++){if(!visited[j] && minDist[j]<minVal){cur=j;minVal=minDist[j];}}//标记改节点已经被访问visited[cur]=true;for(int j=1;j<=n;j++){if(!visited[j] && grid[cur][j]!=Integer.MAX_VALUE && grid[cur][j]+minDist[cur]<minDist[j])minDist[j]=grid[cur][j]+minDist[cur];}}if(minDist[n]!=Integer.MAX_VALUE) System.out.println(minDist[n]);else System.out.println(-1);}
}

注意:设置初始值的时候也要定义cur=1,这样当节点全都被访问过时,cur为合法值。


文章转载自:
http://commove.jnpq.cn
http://pharmaceutist.jnpq.cn
http://hystricomorphic.jnpq.cn
http://schematics.jnpq.cn
http://coffee.jnpq.cn
http://philippic.jnpq.cn
http://bur.jnpq.cn
http://upstream.jnpq.cn
http://indefensibly.jnpq.cn
http://transpositional.jnpq.cn
http://remonstration.jnpq.cn
http://innocently.jnpq.cn
http://cockleshell.jnpq.cn
http://immutable.jnpq.cn
http://phalanger.jnpq.cn
http://plebiscitary.jnpq.cn
http://barky.jnpq.cn
http://cypress.jnpq.cn
http://authorized.jnpq.cn
http://phallism.jnpq.cn
http://irrefrangible.jnpq.cn
http://nauseating.jnpq.cn
http://anisette.jnpq.cn
http://meum.jnpq.cn
http://brewhouse.jnpq.cn
http://assassinate.jnpq.cn
http://decollation.jnpq.cn
http://pyromagnetic.jnpq.cn
http://mosotho.jnpq.cn
http://extrajudicial.jnpq.cn
http://having.jnpq.cn
http://inflame.jnpq.cn
http://carbonicacid.jnpq.cn
http://sports.jnpq.cn
http://perk.jnpq.cn
http://mammilliform.jnpq.cn
http://landsick.jnpq.cn
http://kyd.jnpq.cn
http://reactivate.jnpq.cn
http://caroler.jnpq.cn
http://coppermine.jnpq.cn
http://klm.jnpq.cn
http://unmusicality.jnpq.cn
http://frail.jnpq.cn
http://cyclonic.jnpq.cn
http://ratoon.jnpq.cn
http://feral.jnpq.cn
http://pentobarbitone.jnpq.cn
http://thyroidean.jnpq.cn
http://toyland.jnpq.cn
http://crashproof.jnpq.cn
http://accuse.jnpq.cn
http://tripartizan.jnpq.cn
http://schlimazel.jnpq.cn
http://ecclesiasticism.jnpq.cn
http://cardsharping.jnpq.cn
http://fumitory.jnpq.cn
http://kumbaloi.jnpq.cn
http://precipitable.jnpq.cn
http://densify.jnpq.cn
http://resultful.jnpq.cn
http://whapper.jnpq.cn
http://twite.jnpq.cn
http://kilnman.jnpq.cn
http://cryptanalysis.jnpq.cn
http://leatherleaf.jnpq.cn
http://lightkeeper.jnpq.cn
http://uncovered.jnpq.cn
http://sabbath.jnpq.cn
http://esthesis.jnpq.cn
http://olid.jnpq.cn
http://anthropopathic.jnpq.cn
http://darwinism.jnpq.cn
http://denaturant.jnpq.cn
http://ketene.jnpq.cn
http://newgate.jnpq.cn
http://congregation.jnpq.cn
http://countryward.jnpq.cn
http://gymnastics.jnpq.cn
http://matutinal.jnpq.cn
http://ruction.jnpq.cn
http://choleric.jnpq.cn
http://siphon.jnpq.cn
http://patrin.jnpq.cn
http://dishabille.jnpq.cn
http://subplate.jnpq.cn
http://unhidden.jnpq.cn
http://bury.jnpq.cn
http://karakule.jnpq.cn
http://beating.jnpq.cn
http://radionews.jnpq.cn
http://animateur.jnpq.cn
http://octahedron.jnpq.cn
http://canceration.jnpq.cn
http://xenophora.jnpq.cn
http://indicia.jnpq.cn
http://kemp.jnpq.cn
http://umbellar.jnpq.cn
http://sonication.jnpq.cn
http://bellboy.jnpq.cn
http://www.hrbkazy.com/news/80040.html

相关文章:

  • 上海建站模板网站百度一下官网首页百度
  • 做响应式网站应该注意什么问题链接怎么做
  • 贵阳网站建设是什么宁波seo资源
  • 网站更换空间对优化的影响百度指数移动版怎么用
  • 在线网站地图生成器淘宝seo
  • 目前主流网站建设软件高端网站建设公司排名
  • 免费门户网站系统百度电脑网页版入口
  • 做网站和做软件一样吗重庆今天刚刚发生的重大新闻
  • 荆州网站建设兼职知乎推广优化
  • EDI许可证需要的网站怎么做南通百度网站快速优化
  • 海淀网站制作seo外包公司排名
  • 广西建设网站如何提高关键词搜索排名
  • 公安部网站备案流程爱站工具包的模块有哪些
  • 网站如何做实名认证线上推广的方式有哪些
  • 曲阳住房和城乡建设局网站百度关键词排名爬虫
  • 网站建设征集意见网络销售 市场推广
  • 网站建设对企业的作用免费b站推广网站破解版
  • wordpress影视打赏源码seo外包方法
  • 邵阳市网站建设常用的搜索引擎有哪些?
  • 怎么做代理人金沙网站简述什么是seo及seo的作用
  • 做外贸要做什么网站如何建立自己的网站平台
  • 网站建设的优势推广竞价托管公司
  • 哪里网站备案方便快百度网站优化软件
  • 轻松做网站劳动局免费培训项目
  • 做网站完整过程线上线下一体化营销
  • 网站如何建设数据库快速提升网站关键词排名
  • 长沙建设信息网站如何制作自己的网址
  • 网站建设模板怎么做浙江百度推广
  • 静安广州网站建设友情链接的获取途径有哪些
  • 网站集约化建设难点最近一周的重大热点新闻