(算法分析与设计)期末试题及参考答案.docx

(算法分析与设计)期末试题及参考答案.docx

(算法分析与设计)期末试题及参考答案

一、简答题(每题5分,共20分)

1.请简述分治法的基本思想,并列举两个典型应用。

分治法的基本思想是将一个规模为N的复杂问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。递归地求解这些子问题,然后将各子问题的解合并,得到原问题的解。其步骤通常包括分解、解决和合并。

典型应用包括:快速排序算法(通过选取基准元素将数组分解为两个子数组递归排序)、归并排序算法(将数组递归分成两半分别排序后合并)、以及解决大规模计算问题如大整数乘法(Karatsuba算法)等。

2.动态规划与贪心算法在求解最优化问题时的主要区别是什么?

动态规划与贪心算法都用于求解最优化问题,但核心区别在于对子问题处理的策略不同。贪心算法在每一步都做出当前看来最优的选择(局部最优),并且期望通过一系列局部最优导致全局最优解,它通常不回退。动态规划则通过保存子问题的解来避免重复计算,其每一步的选择依赖于相关子问题的解,通过组合子问题的解来构造更大问题的解,最终得到全局最优解。关键差异在于,贪心算法要求问题具有贪心选择性质(即局部最优能导致全局最优),而动态规划要求问题具有最优子结构(问题最优解包含其子问题的最优解)和重叠子问题性质。

3.解释算法时间复杂度的渐进上界O符号和大Ω符号的定义及其意义。

O符号(大O记号)给出了算法运行时间的渐进上界。形式化定义:若存在

文档评论(0)

1亿VIP精品文档

相关文档