1. 理解和分析算法的空间和时间复杂度。 2. 确定适合给定问题的数据结构。 3. 在各种实际应用中实现图形算法。 4. 实现用于查询和搜索的堆和树。 5. 在高级数据结构操作中使用基本数据结构。 6. 在各种实际应用中使用搜索和排序。 模块:1 函数增长 3 小时 算法和数据结构的概述和重要性 - 算法规范、递归、性能分析、渐近符号 - Big-O、Omega 和 Theta 符号、编程风格、编码细化 - 时空权衡、测试、数据抽象。模块:2 基本数据结构 6 小时 数组、堆栈、队列、链表及其类型、线性数据结构的各种表示、操作和应用 模块:3 排序和搜索 7 小时 插入排序、合并排序、线性时间排序-排序的下限、基数排序、双调排序、鸡尾酒排序、中位数和顺序统计-最小值和最大值、预期线性时间内的选择、最坏情况线性时间内的选择、线性搜索、插值搜索、指数搜索。 模块:4 树 6 小时 二叉树-二叉树的性质、B 树、B 树定义-B 树上的操作:搜索 B 树、创建、分裂、插入和删除、B+ 树。 模块:5 高级树 8 小时 线程二叉树、左撇子树、锦标赛树、2-3 树、伸展树、红黑树、范围树。模块:6 图表 7 小时 图表表示、拓扑排序、最短路径算法 - Dijkstra 算法、Floyd-Warshall 算法、最小生成树 - 反向删除算法、Boruvka 算法。 模块:7 堆和哈希 6 小时 堆作为优先级队列、二叉堆、二项式和斐波那契堆、哈夫曼编码中的堆、可扩展哈希。 模块:8 当代问题 2 小时 总授课时长:45 小时 教科书 1. Cormen, Thomas H.、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein。算法简介。麻省理工学院出版社,2022 年。 参考书 1. Skiena, Steven S. “算法设计手册(计算机科学文本)”。第 3 版
主要关键词