摘要: 一、对回溯法的理解 回溯法相当于就是从一个全排列中找到那个最优解,但又不仅仅是全排列遍历,在问题的解空间树中,按照深度优先搜索,从根节点开始往下遍历,中间经过约束函数和限界函数剪枝,减少遍历次数,如果不满足向下遍历的条件,就会上上回溯遍历解空间树,否则就继续向下按照深度优先搜索最优解。 二、子集和问 阅读全文
posted @ 2019-12-18 17:00 jewfer 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 一、对贪心算法的理解 贪心算法总是做出在当前看来是最好的选择,它不依赖于将来所做的选择,也不依赖于子问题的解,它并不从整体最优考虑,它所做的选择只是局部最优解,这就是贪心算法和动态规划的区别,而且,相较于动态规划算法,贪心算法更加简单,效率也更高。 贪心算法有两个基本要素:贪心选择性质和最优子结构性 阅读全文
posted @ 2019-11-24 15:24 jewfer 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 一、程序存储问题 1. 实践题目 2. 问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁 阅读全文
posted @ 2019-11-17 21:23 jewfer 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一、对动态规划算法的理解 动态规划算法与分治法类似,其基本思想是将待求解的问题分解成若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解。但是,适合用动态规划算法来求解的问题经分解得到的子问题往往不是相互独立的,而用分治法求解时则会对有些子问题进行重复的求解,以致耗费过多的时间,因此,动态规 阅读全文
posted @ 2019-11-03 13:40 jewfer 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 一、数字三角形 1.实践题目 2.问题描述 该问题要求在只能向左斜下方或者右斜下方走得条件下,从第一行开始找寻一个最佳路径,使得到达最后一行的路径和最大 3.算法描述 定义一个二维数组dis[i][j]存储数字三角形的数据,据题意,比较dis[i][j]右下方和左下方的两个数,将dis[i递][j] 阅读全文
posted @ 2019-10-20 15:55 jewfer 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1.对分治法思想的体会 分治法就是将问题分解为规模更小的子问题,通过一一解决这些子问题,再将这些已经解决了的子问题合并起来,就得到了原问题的解。通过分治法的思想,我们可以更加轻松的解决规模很大的问题,也使得代码更加清晰,易于理解。我们在大一的时候其实已经接触过分治法的思想了,像二分查找,就是利用了分 阅读全文
posted @ 2019-10-11 19:47 jewfer 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 PTA算法 7-1 二分查找 2.问题描述 3.算法描述 4.算法时间及空间复杂度分析 (1)时间复杂度: 每经过一次比较,数组a的大小就变为原来的一半,则有T(n) = O(1) + T(n/2) = O(logn) (2)空间复杂度: 因为定义的变量a[]所分配的空间大小不随n和x 阅读全文
posted @ 2019-09-22 20:37 jewfer 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Java编码规范 一、命名规范 1. 类名和接口单词的首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName 、ThisIsMethodOrFieldName。 2. 标识符的命名 阅读全文
posted @ 2019-09-02 23:36 jewfer 阅读(175) 评论(0) 推荐(0) 编辑