算法设计与分析
文章平均质量分 89
算法设计与分析课后作业
Mitch311
我与春风皆过客, 你携秋水揽星河。
展开
-
【算法】动态规划(第五章习题解答)
背包问题,物品的价值和重量相等,由于这个背包问题并没有什么特殊已知条件,因此贪心算法并一定可以得到全局最优解,所以最好选用动态规划法来解决。算法设计:核心思路是采用动态规划,不断尝试并缩小问题的规模,同时考虑尽可能多的情况,可以设函数。算法设计:核心思路依旧是采用动态规划,不断尝试并缩小问题的规模,同时考虑尽可能多的情况,设。复杂度分析:由递归方程可知,该算法的时间复杂度相当于斐波那契数列的时间复杂度。函数,因此除了输入和输出外不需要额外的存储空间,因此空间复杂度是。代表存在至少一种找零钱的方法,原创 2023-01-04 12:33:16 · 664 阅读 · 0 评论 -
【算法】贪心算法(第四章习题解答)
算法设计:首先对所有区间按照右端点升序的顺序进行排序,然后在排序后的结果中统计不相交的区间个数,最后将总区间个数减去不相交的区间个数计算出需删掉的区间个数。综上所述,将最优装载问题的贪心算法推广到两艘船的情形,贪心算法并不能保证产生最优解,该问题可以采用回溯法或动态规划等其他方法解决得到最优解。③物品个数比贪心算法得到的解更多,假设存在的最优解与贪心算法的解去掉二者交集后,最优解中还剩两个或两个以上的物品。②物品个数比贪心算法得到的解相等,由于贪心算法选取的顺序是价值递减的顺序,此情况不存在。原创 2023-01-04 12:30:30 · 1550 阅读 · 0 评论 -
【算法】分治算法(第三章习题解答)
复杂度分析:该算法使用递归分治的思想,由递推方程可知,每次递归问题的规模减半,因此易得算法的时间复杂度是。复杂度分析:该算法使用递归分治的思想,每次递归问题的规模减半,因此易得算法的时间复杂度是。默认排序算法都在原数组上完成,因此算法只需要常数规模的存储空间,空间复杂度是。因此不妨采用递归分治的思想,并采用类似二分查找的方式寻找中位数,具体操作即将。的中位数,如果不相等,则根据具体情况递归查询规模减半的。算法只需要常数规模的存储空间,因此空间复杂度是。行的排序算法的环节,排序的时间复杂度为。原创 2023-01-04 12:29:25 · 678 阅读 · 0 评论 -
【算法】排序类算法(第二章习题解答)
中选择一个通过排序算法进行排序,对另一个未排序的集合中的每个元素逐一使用二分查找法在排序好的集合中查找。已经是排序好的单峰数组,比较简单的思路是从头逐个遍历数组找到峰顶,但是这样显然效率不是最高的,为了兼顾效率,可以采用二分查找的方法。进行排序,排序之后每个元素是按照从小到大排列的,说明出现多次的元素是连续排列的,这时再进行计数就可以得到出现次数最多的众数。值得注意的是算法的主要时间复杂度来源于排序,因此选择一个较小的整数集合进行排序可以提高算法的效率。行的排序的时间复杂度为。次,每次的时间复杂度是。原创 2023-01-04 12:20:34 · 545 阅读 · 0 评论 -
【算法】算法分析技术(第一章习题解答)
对该递推方程构建递归树求解,可得第x个递归层复杂度总和为。,命题1和命题2的等式左右两边化简后均为。原创 2023-01-04 12:15:41 · 699 阅读 · 0 评论