2018年12月23日

摘要: 实践题目 :工作分配问题 问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 算法描述:剪枝后的解空间树如下(原解空间每一父节点都有三个子节点,分别对应第1、2、3个工作的费用) 阅读全文
posted @ 2018-12-23 20:27 思渊鱼 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 对回溯算法的理解: 回溯法,是通过深度优先策略从根节点遍历一个问题的所有解以获得最优解的一种算法,在思想上与动态规划有点相似,但实现方法大不相同,回溯法是从根节点一直遍历到各个叶节点得到最优解,每次得到一个解就回溯到父节点遍历另一子节点,最终得到最优解,期间可通过限界函数和约束函数剪枝以减少所需遍历 阅读全文
posted @ 2018-12-23 19:33 思渊鱼 阅读(79) 评论(0) 推荐(0) 编辑

2018年12月2日

摘要: 1、实践题目 删数问题 2、问题描述 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 3、算法描述 定义一个数组来装要删的数字,从0~n比较数字大小,当前一个数字比后 阅读全文
posted @ 2018-12-02 18:39 思渊鱼 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 1、对贪心算法的理解 贪心算法是通过做最优选择最终得到最优解的算法,在每一步里做出当前情况的最优选择,最终得到所求问题最优解。 2、汽车加油问题的贪心选择性质 这个问题分三种情况: 1)如果汽车加满油所能行驶的距离小于所需要行驶的距离,则直接输出“No Solution!”。 2)汽车加满油所能行驶 阅读全文
posted @ 2018-12-02 18:26 思渊鱼 阅读(114) 评论(0) 推荐(0) 编辑

2018年11月11日

摘要: 1、实践题目 数字三角形 2、问题描述 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3、算法描述 定义一个二维数组b[i][j]来记录最短路径。自底向上比较a[i+1][j]和a 阅读全文
posted @ 2018-11-11 19:09 思渊鱼 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 1、对动态规划算法的理解: 动态规划算法是针对求最优解的问题的算法,核心思想和分治法有些类似,都是把问题分成几个小问题逐一解决后再得出答案,其中动态规划算法是求其中各小问题的最优解,求解方法一般有自顶向下和自底向上两种方法。 2、编程题1、2的递归方程: 1) 0 i=0,j=0 a[i][j]=a 阅读全文
posted @ 2018-11-11 18:54 思渊鱼 阅读(94) 评论(0) 推荐(0) 编辑

2018年10月14日

摘要: 1.二分法思想:首先二分法要求的是非降序排列的数据,否则无法施行。我认为二分法思想核心就是分治法,即把复杂的问题分成几部分来解决,虽有不同但核心思想确实是相同的。通过二分法及其所包含的思想,许多大问题、大数据的处理的效率能有所提高,时间复杂度也会有所降低,毕竟最坏的情况也只有(log n)次,相比一 阅读全文
posted @ 2018-10-14 18:07 思渊鱼 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:7-1二分查找 2.问题描述:输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3.算法描述:首先,二分查找在查找前先用left、right表示数组第一和最后一个数 阅读全文
posted @ 2018-10-14 17:52 思渊鱼 阅读(100) 评论(0) 推荐(0) 编辑

导航