update
This commit is contained in:
parent
a7e16a135f
commit
babd1d4fae
@ -79,6 +79,66 @@ $$
|
||||
|
||||
这意味着当 $ n $ 个顶点均匀地分配在两个子集中时,二分图能够包含最多的边。
|
||||
|
||||
## 14
|
||||
|
||||
迪杰斯特拉(Dijkstra)算法是一种用于计算单源最短路径的图算法。它可以找出从起始节点到其他所有节点的最短路径,是由荷兰计算机科学家艾兹赫尔·迪杰斯特拉(Edsger W. Dijkstra)于1956年提出的。
|
||||
|
||||
### 迪杰斯特拉算法的基本思想
|
||||
|
||||
1. **初始化**:
|
||||
|
||||
- 从起点开始,设定起点的距离为0,其余所有节点的距离为无穷大。
|
||||
- 将所有节点标记为未访问。
|
||||
2. **选择节点**:
|
||||
|
||||
- 从未访问的节点中选择一个距离起点最近的节点(称为当前节点)。
|
||||
3. **更新距离**:
|
||||
|
||||
- 以当前节点为中介,更新其邻居节点的距离。
|
||||
- 如果通过当前节点可以使某个邻居节点的距离变得更短,则更新该邻居节点的距离值。
|
||||
4. **标记已访问**:
|
||||
|
||||
- 将当前节点标记为已访问,不再访问。
|
||||
5. **重复步骤2至4**:
|
||||
|
||||
- 继续选择未访问节点中距离最小的节点,重复更新操作,直到所有节点都被访问。
|
||||
|
||||
### 迪杰斯特拉算法的应用
|
||||
|
||||
迪杰斯特拉算法主要应用于以下场景:
|
||||
|
||||
- 网络路由:寻找最短路径以优化数据传输。
|
||||
- 地图和导航系统:找出最短路径或最优路径。
|
||||
- 资源管理:优化资源分配和调度。
|
||||
|
||||
### 伪代码
|
||||
|
||||
```plaintext
|
||||
function Dijkstra(Graph, source):
|
||||
dist[source] ← 0
|
||||
for each vertex v in Graph:
|
||||
if v ≠ source:
|
||||
dist[v] ← INFINITY
|
||||
add v to unvisitedSet
|
||||
|
||||
while unvisitedSet is not empty:
|
||||
u ← vertex in unvisitedSet with min dist[u]
|
||||
remove u from unvisitedSet
|
||||
|
||||
for each neighbor v of u:
|
||||
alt ← dist[u] + length(u, v)
|
||||
if alt < dist[v]:
|
||||
dist[v] ← alt
|
||||
|
||||
return dist
|
||||
```
|
||||
|
||||
### 复杂度
|
||||
|
||||
迪杰斯特拉算法的时间复杂度取决于实现方式。使用优先队列(二叉堆)实现的情况下,时间复杂度为 $O((V + E) \log V)$,其中 $V$ 是节点数,$E$ 是边数。
|
||||
|
||||
如果你有任何具体问题或者需要更详细的解释,请告诉我!
|
||||
|
||||
# 编程选择题
|
||||
|
||||
## 2
|
||||
@ -179,6 +239,14 @@ int main() {
|
||||
|
||||
### 总结
|
||||
|
||||
这份代码针对性地说,单调递增是$O(n \log n)$
|
||||
|
||||
虽然快速选择算法在随机数据或一般情况下具有 `O(n)` 的平均时间复杂度,但在输入数据是**单调递增**或**单调递减**且每次选择的枢轴都很不理想(例如总是选到最小或最大值)时,算法可能退化到最坏的情况,时间复杂度变为 `O(n^2)`。
|
||||
|
||||
要改善这种情况,可以采用随机化策略选择枢轴(如现在代码中所做的)或者使用“三点取中”的方式选择枢轴,以减少最坏情况发生的概率,从而保证算法的效率。
|
||||
|
||||
# 完善程序
|
||||
|
||||
## 分数背包
|
||||
|
||||
> 辗转相除法,最大公约数名曰gcd
|
||||
|
15
20240826/计划.md
Normal file
15
20240826/计划.md
Normal file
@ -0,0 +1,15 @@
|
||||
# 2024年8月26日~8月31日安排
|
||||
|
||||
## 每日训练
|
||||
|
||||
### 初赛题目
|
||||
|
||||
> 由于初赛本省难度较高,所以优先攻克初赛,每天写一套初赛题目
|
||||
|
||||
### 《算法竞赛·进阶指南》
|
||||
|
||||
有八大块内容,争取5天线浏览一遍,有初步印象,对复赛和初赛都有帮助
|
||||
|
||||
### 《信息学奥赛·一本通》
|
||||
|
||||
此书主要讲解初赛内容,5天内阅读并理解,为初赛打好基础
|
Loading…
Reference in New Issue
Block a user