较为复杂的经典算法 ================== 本章所述均为较为复杂的经典算法,也是竞赛考试的常考模版算法。本章所述的经典算法往往会用到一些较为复杂的数据结构,用到分治、递归、动态规划等算法设计方法,也会用到一些较为精巧的编程技巧。 学习这些算法,一方面是为了学会编写相应的程序,但更重要的是要学会设计和实现这些算法的思路。既要深入理解这些算法及其背后的数学原理,又要弄懂它们的C++语言实现技巧。既要会用、会编写这些算法的程序,又要会灵活应用在实际问题中,更要会根据实际需要改造甚至改进这些算法,根据实际问题自己设计出类似的算法并用C++语言实现。 本章分为6节,共有以下内容: 1. 经典数值算法 2. 经典统计算法 * 锦标赛算法 * k位数算法 * 数据的有序性检验 * 数据的相关性检验 3. 经典字符串算法 * 后缀树、后缀排序 * 马拉车算法 4. 经典排序算法 * 快速排序 * 归并排序 * 堆排序 * 索引树 5. 经典搜索算法 * A\*搜索 * 启发式搜索 * 束搜索 6. 经典组合算法 * 任意组合的生成 * 任意排列的生成 .. toctree:: :maxdepth: 2 ch05/510_medium_number_algos