请解释迪杰斯特拉算法是什么，并在一个具体应用场景中演示其使用。输出形式为markdown。
user
```markdown
### 迪杰斯特拉算法简介

迪杰斯特拉算法（Dijkstra's Algorithm）是一种用于寻找图中两节点之间最短路径的算法，由荷兰计算机科学家艾兹格·迪杰斯特拉在1956年提出。该算法假设所有边的权值非负，适用于有向图和无向图。算法的主要思想是通过维护一个距离数组，记录从起始节点到其他节点的最短距离，并逐步更新这些距离直到找到最短路径。

### 具体应用场景：社交网络中的最短影响力传达

假设在一个社交网络中，用户之间通过关注关系相连，每个用户影响力值不同。我们希望通过最少的步骤，让一条消息从一个用户传播到另一个用户，使得最终接受消息的用户的影响力值最大。这个问题可以转化为在一个带权图中寻找从源节点到目标节点的最短路径，其中每个节点代表一个用户，边的权重为用户之间的传达成本。

**示例图：**

- 用户1 -> 用户2 (成本: 1, 影响力: 10)
- 用户1 -> 用户3 (成本: 5, 影响力: 30)
- 用户2 -> 用户3 (成本: 1, 影响力: 0)
- 用户2 -> 用户4 (成本: 2, 影响力: 20)
- 用户3 -> 用户4 (成本: 3, 影响力: 15)

假设我们要从用户1传达消息给用户4，计算最短路径和路径上的总成本与总影响力。

#### 解决方案步骤

1. **初始化：** 设定距离数组 `distance`，记录从用户1到其他用户的最短成本，默认为无限大；设定数组 `influence`，记录从用户1到其他用户的最大影响力，默认为0；设置 `distance[1]` 为0。
2. **选取未访问节点中距离最小节点：** 当前为用户1。
3. **更新邻居节点的距离与影响力：**
   - 更新用户2: 距离变为1，影响力变为10。
   - 更新用户3: 距离变为5，影响力变为30。
4. **标记用户1为已访问，重复步骤2和3直到所有节点被访问。**
5. **结果：** 最终得到用户1到用户4的最短路径为[1->2->4]，总成本为3，总影响力为30。

以上展示了如何使用迪杰斯特拉算法在社交网络中寻找最优的影响力传播路径。
```
assistant