算法的乐趣 · 第九节
《算法的乐趣》第九节
本节首先介绍了广度优先搜索的流程:从初始点开始,依次访问其邻接点,再按顺序访问这些邻接点的邻接点,为保证顺序需用队列管理。
本节首先介绍了广度优先搜索的流程:从初始点开始,依次访问其邻接点,再按顺序访问这些邻接点的邻接点,为保证顺序需用队列管理。接着列举了图算法的现实应用,如地图导航的最短路径与带权搜索、交通规划的最小生成树、网络防环的STP协议、项目管理的拓扑排序与关键路径等。
随后论述数据结构、数学模型与算法的关系:数据结构是建立数学模型的基础,掌握越多工具思路越广;数学模型是对问题的抽象简化,便于计算机处理。文中举例说明:将工程活动依赖关系转化为有向图,可用拓扑排序和关键路径算法解决;将倒水问题转化为状态穷举搜索;将矩形包含判断转化为区间树查询,使复杂度从O(n²)降为O(nlogn)。二者相互依存,共同决定算法成败。
最后总结本章三部分内容,并指出算法设计并非随意的智力爆发,而是遵循规律的过程,需要数据结构、数学模型和常用设计模式作为基础,下一章将介绍几种典型的算法设计模式。