算法笔记
1. 分治法能解决的问题一般具有什么特征 2. 解空间树的动态搜索过程 3. 递归优点?那为什么有的问题还要用非递归 动态规划法与分治法的异同、动态规划法与贪心法的异同、分支限界与回溯 分析性能特点。 例,填表:动态规划法 画图:贪心法求TSP、图着色,回溯法、分支限界法 5、a.为一个分治算法编写伪代码,该算法同时求出一个n元数组的最大元素和最小元素的值。 b.请拿该算法与解同样问题的蛮力算法做一个比较。 解: a.同时求出最大值和最小值,只需要将原数组一分为二,再使用相同的方法找出这两个部分中的最大值和最小值,然后经过比较就可以得到整个问题的最大值和最小值。 算法 MaxMin(A[l..r],Max,Min) //该算法利用分治技术得到数组A中的最大值和最小值 //输入:数值数组A[l..r] //输出:最大值Max和最小值Min if(r=l) Max←A[l];Min←A[l]; //只有一个元素时 else if r-l=1 //有两个元素时 if A[l]≤A[r] Max←A[r]; Min←A[l] else Max←A[l]; Min←A[r] else //r-l>1 MaxMin(A[l,(l+r)/2],Max1,Min1); //递归解决前一部分 MaxMin(A[(l+r/)2+1..r],Max2,Min2); //递归解决后一部分 if Max1