最短路径算法
名词概念
时间复杂度
参考:https://blog.csdn.net/jsjwk/article/details/84315770
执行当前算法所消耗的时间
大O符号表示法,即 T(n) = O(f(n))
大O符号表示法并不是用于来真实代表算法的执行时间的,它是用来表示代码执行时间的增长变化趋势的。
常见的时间复杂度量级有:
- 常数阶O(1)
- 对数阶O(logN)
- 线性阶O(n)
- 线性对数阶O(nlogN)
- 平方阶O(n²)
- 立方阶O(n³)
- K次方阶O(n^k)【n的k次方,符号不会敲】
- 指数阶(2^n)
上面从上至下依次的时间复杂度越来越大,执行的效率越来越低。
空间复杂度
执行当前算法需要占用多少内存空间
空间复杂度也是用大O表示法,比较常用的有:O(1)、O(n)、O(n²)。
深度优先遍历(Depth First Search)
广度优先搜索(Breadth First Search)
有权图
Dijkstra算法
Floyd算法
参考资料
代码实现:
https://blog.csdn.net/qq_34989804/article/details/82149495
概念: