Floyd算法实验报告

  1. 问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
    弗洛伊德算法定义了两个二维矩阵: 矩阵D记录顶点间的最小路径 例如D[0][3]= 10,说明顶点0 到 3 的最短路径为10; 矩阵P记录顶点间最小路径中的中转点 例如P[0][3]= 1 说明,0 到 3的最短路径轨迹为:0 -> 1 -> 3。
  2. 解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]
  3. 在这里插入图片描述
  4. 设计[核心伪代码]
    //这里是弗洛伊德算法的核心部分 //k为中间点
    for(k = 0; k < G.vexnum; k++){
    //v为起点
    for(v = 0 ; v < G.vexnum; v++){
    //w为终点
    for(w =0; w < G.vexnum; w++){
    if(D[v][w] > (D[v][k] + D[k][w])){
    D[v][w] = D[v][k] + D[k][w];//更新最小路径 P[v][w] = P[v][k];//更新最小路径中间顶点
    }
    }
    }
    }
  5. 分析[算法复杂度推导]三重循环,算法复杂度为O(N^3)
  6. 源码[github源码地址]
  7. https://github.com/hackkkkkk/calculate
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值