摘要: 一、对回溯算法的理解 在我的理解中,回溯法就是把一个问题当作一棵“树”,然后对其进行深度优先的遍历,需要注意的一点就是,每一次往更深一层推进后都要进行“回溯”,即将状态回归到上一层,通过这样的多次遍历,求出其最优解,这就是我理解的回溯算法。 二、“子集和”问题的解空间结构和约束函数 “子集和”问题的 阅读全文
posted @ 2019-12-19 22:30 月Raido 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一、对贪心算法的理解 就我个人看来,贪心算法与动态规划很像,都要求问题具有最优子结构性质,区在于,动态规划所做的每一个选择都要依赖于以往所做过的选择,依赖于子问题的解,依赖于将来所作的选择,但是贪心算法所做的选择可以依赖于以往所做过的选择,但绝不以来于将来所做的选择,也不依赖于子问题的解,它所做的每 阅读全文
posted @ 2019-11-19 22:42 月Raido 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 本次实践的题目为4-1程序存储问题 二、问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上 阅读全文
posted @ 2019-11-19 20:24 月Raido 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一、对动态规划算法的理解 动态规划其实与分治法类似,也是把一个问题分解成多个子问题,但是分治法在求解子问题时往往会有很多重复的计算,就会造成大量的时间浪费,而动态规划做的就是将这些子问题的计算结果保存起来,当需要用到的时候就可以直接调用,然后就是通过这样一种方式,一层层的求解,最后得出整个问题的结果 阅读全文
posted @ 2019-11-05 22:46 月Raido 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 这一次由于我只做出了第一道实践题,即数字三角形问题,所以没的选择,只能写这道题的实践报告了。 二、问题描述 题目里虽然没有说,但是老师要求使用第三章的动态规划算法,同时还要用上“备忘录”,不然的话提交会出现运行超时的错误。 三、算法描述 程序的大致思路就是通过一层层的递归,要求n行数字 阅读全文
posted @ 2019-10-21 20:29 月Raido 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一、对分治法思想的体会 对于分治法思想的体会,就从他的好处还有难度来简单谈一谈我的体会吧。 分治法的好处 分治法的好处不言而喻,首先,它能够把一个复杂的问题变的更复杂,是的,更复杂,你可能会问,变复杂算什么好处?但是这个复杂是对于我们编程者来说的,因为我们需要用一种更复杂的方法去寻求一个问题的答案, 阅读全文
posted @ 2019-10-15 20:23 月Raido 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 这一次我要做的是改写二分搜索算法这道题的实践报告,第一次写,没有经验,做的不好还请各位大佬指正。 二、问题描述 话不多说,直接上题。 题目要求是对二分搜索算法进行改写,而且对输入数据也做了限制——已排好序的数组,这就大大减少了我们的作业量。 以下是我个人对题目内容的解读: 输入一个数x 阅读全文
posted @ 2019-09-23 20:44 月Raido 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 编码规范 一、java文件组织 文件组织规则:由于超过2000行的程序难以阅读,应该尽量避免出现超过2000行的程序。一个Java源文件都包含一个单一的公共类或接口。若私有类和接口与一个公共类相关联,可以将它们和公共类放入同一个源文件。公共类必须是这个文件中的第一个类或接口。 文件组织顺序: 1.文 阅读全文
posted @ 2019-09-08 21:49 月Raido 阅读(297) 评论(0) 推荐(0) 编辑