1. 问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
    迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。
  2. 解析[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]
  3. Dijkstra的核心思想是贪心算法的思想。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
    贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
  4. 设计 [核心伪代码]
    (1) 初始时,S只包含起点s;U包含除s外的其他顶点,且U中顶点的距离为"起点s到该顶点的距离"[例如,U中顶点v的距离为(s,v)的长度,然后s和v不相邻,则v的距离为∞。
    (2) 从U中选出"距离最短的顶点k",并将顶点k加入到S中;同时,从U中移除顶点k。
    (3) 更新U中各个顶点到起点s的距离。之所以更新U中顶点的距离,是由于上一步中确定了k是求出最短路径的顶点,从而可以利用k来更新其它顶点的距离;例如,(s,v)的距离可能大于(s,k)+(k,v)的距离。
    (4) 重复步骤(2)和(3),直到遍历完所有顶点。
  5. 分析[算法复杂度推导]
    O((m+n)logn)
  6. 源码
    https://github.com/hackkkkkk/calculate

Dijkstra算法实验报告相关推荐

  1. c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵三元组实现矩阵转置算法实验报告.doc...

    稀疏矩阵三元组实现矩阵转置算法实验报告.doc 1实验三稀疏矩阵的三元组表示实现矩阵转置算法学院专业班学号姓名一.实习目的1掌握稀疏矩阵的三元组顺序表存储表示:2掌握稀疏矩阵三元组表示的传统转置算法的 ...

  2. c语言des算法实验报告,C语言实现DES算法实验报告解析.doc

    C语言实现DES算法实验报告解析 xx工程大学 实验报告 (2015-2016学年第一学期) 报告题目: DES加密算法 课程名称: 密码学B 任课教员: 专 业: 学 号: 姓 名: 二O一六年一月 ...

  3. c语言数组排序算法的实验总结,排序算法实验报告技术总结.doc

    数据结构实验报告八种排序算法实验报告 实验内容编写关于八种排序算法的C语言程序,要求包含直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序.实验步骤 各种内部排序算法 ...

  4. des实验报告c语言实现,C语言实现DES算法实验报告

    <C语言实现DES算法实验报告>由会员分享,可在线阅读,更多相关<C语言实现DES算法实验报告(29页珍藏版)>请在人人文库网上搜索. 1.xx工程大学实验报告(2015-20 ...

  5. 作业1:ID3 算法实验报告

    作业1:ID3 算法实验报告 1. 算法介绍 信息增益:特征 A 对训练数据集 D 的信息增益 g(D, A),定义为集合 D 的经验熵 H(D) 与特征 A 给定条件下 D 的讲演条件熵 H(D|A ...

  6. 作业2:BP 算法实验报告

    作业2:BP 算法实验报告 1. 算法介绍 BP 算法全称叫做误差反向传播(error Back Propagation, 或者叫作误差逆传播)算法.现实任务中使用神经网络时,大多是在是使用 BP 算 ...

  7. 操作系统 进程调度-银行家算法实验报告

    实验要求 一. 实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止.本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家 ...

  8. 银行家算法实验报告c语言版,银行家算法实验报告C语言版.doc

    <操作系统>课程综合性实验报告 姓名: 学号: 2016 年 11 月 20 日 实验题目进程调度算法程序设计一.实验目的 通过对安全性算法和银行家算法的模拟,进一步理解资源分配的基本概念 ...

  9. matlab编程实现levinson算法,音频处理Levinson-Durbin算法实验报告

    音视频信号处理实验报告 一.实验目地: (1).理解Levinson-Durbin 算法的迭代过程: (2).学会使用MATLAB 编写Levinson-Durbin 算法函数. 二.实验内容: Le ...

最新文章

  1. 【73套】Epic Stock Media配乐音效素材合集包
  2. 啥是佩奇?Python告诉你
  3. ArcGIS中的三种查询
  4. Linux查看文件大小的几种方法
  5. python最流行的框架_2020年最流行Python web开发框架(下)
  6. linux——sshd服务及其管理命令
  7. Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天
  8. 福禄克OFP光纤测试仪5个强大的功能
  9. 高德地图我的队伍查岗_详细测试高德地图的家人地图后 我学会了画地为牢
  10. iOS 数据库操作(使用FMDB)
  11. 2021东华杯misc详解
  12. Iocomp .NET WinForms OPC Crack
  13. Android模拟器读取GPS串口模拟器GPS数据
  14. java date.set_解决Java Calendar类set()方法的陷阱
  15. MFC的CImage图形处理
  16. 2020进博会霍尼韦尔特性材料和技术集团与七家企业签约项目
  17. mac磁盘清理的方法大全
  18. javascript与Jscript区别
  19. 一家互联网创业公司的“估值”是如何来的
  20. ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透

热门文章

  1. 郎凤娥谈定西实施煤粉锅炉改造项目
  2. 类的operator new与operator delete的重载
  3. shiro源码分析(四)具体的Realm
  4. xp下 opensuse12.3 制作可启动U盘 (用U盘安装opensesu12.3)
  5. push与presentModal的 用法详解(转)
  6. NSAutoreleasePool
  7. 去掉WIN7系统用户登陆界面(默认用户自动登录)
  8. 日均百亿级日志处理:微博基于Flink的实时计算平台建设
  9. 今日头条”入局搜索:流量巨头的生存空间之战!
  10. Java应用程序中的性能改进:ORM / JPA