摘要:
算法第五章作业 组员:高珞洋,何汶珊 对回溯法的理解 用一句话来说明回溯法给我的印象,那就是它是个很好理解,上手很难,但熟悉后很又很简单的算法。 一开始接触回溯法,有很多例题,比如0 1背包,比如n后问题。给我留下印象最深的还是数独问题,虽然数独问题算是比较复杂的回溯法,但是用它来理解回溯法却是十分 阅读全文
摘要:
算法第四章作业 组员:高珞洋,何汶珊 对贪心算法的理解 贪心算法来源于动态规划,都是要求得全局最优解。他们都是选择性算法,从一个集合种选择适当的元素加入解集合。 在动态规划中,难点在于找到递推公式,并在代码中利用递推公式进行求解。尝试每种可能的情况并选择最优的情况。 动态规划的选择策略是试探性的,每 阅读全文
摘要:
算法第四章上机实践报告 组员:高珞洋,何汶珊 实践题目 程序存储问题 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在 阅读全文
摘要:
算法第三章作业 组员:高珞洋,何汶珊 你对动态规划算法的理解 之前在学习分治法的时候也有将其和动态规划进行比较,动态规划能够解题的根本要求是原问题可以细分成子问题,且原问题的最优解必包含子问题的最优解。 为了更明确上述条件,从而保证题目能够运用动态规划求解,通常需要两步操作: 1. 明确问题具有最优 阅读全文
摘要:
算法第三章上机实践报告 组员:高珞洋,何汶珊 实践题目 7 2 最大子段和 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 问题 阅读全文
摘要:
算法第二章作业 对分治法思想的体会 分治法的基本思想是将大规模的问题分割成更小规模的子问题,分别求解后将答案合并,逐步求解出原来的问题。 好像更贴近我们所说的“自顶向下分析,自底向上实现” 和递归方法的区别在于它没有用到递归,而更多地采用循环解决问题,因此空间上的效率会比较高(不容易产生栈溢出等bu 阅读全文
摘要:
算法第二章上机实践报告 组员:高珞洋,何汶珊 实践题目 7 2 改写二分搜索算法 设a[0:n 1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 输入有两行:第一行是n值和x值 阅读全文
摘要:
算法第一章作业 代码编写规范 之前看的《高质量C++C编程指南》中提到了代码规范,和之后我在网上看到的代码规范有许多相似地方,除了“头文件”方面Java没办法效仿外,大部分内容是可以延用的。 简易版如下: "程序员需要了解的代码编写规范" 1. 源代码文件以文件内容中的最顶层的Java类命名,而且大 阅读全文
摘要:
排序 代码实现: "Sort方法GitHub " 基于比较 的排序算法时间下限是O(nlogn):归并排序、堆排序、快排。其他都是O(n^2) 插入排序 直接插入 循环n 1次,每次将无序序列的第一个数插入到有序序列中。一开始有序序列只有一个数(第一个数),之后每插入一个有序序列+1 将第一个数作为 阅读全文
摘要:
词频统计 参考: 对参考的代码进行了一些补充和修改,大体思路没变 并不是想说这题多难,只是在这题可以用STL的很多结构帮助解题,所以能让代码变得很简单 题目 7 1 词频统计 (30 分) 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。 所谓“单词”,是指由不 阅读全文