摘要: 1、实践题目:工作分配问题 2、问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费 阅读全文
posted @ 2018-12-20 13:24 嘉兰 阅读(145) 评论(0) 推荐(1) 编辑
摘要: 1、对回溯算法的理解 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回 阅读全文
posted @ 2018-12-20 12:54 嘉兰 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目: 2、问题描述: 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。 第 1 行是1 个正整数 a。第 2 行是正整数k。 输出最小数。 比如第一次输入: 阅读全文
posted @ 2018-11-28 19:15 嘉兰 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1、你对贪心算法的理解: 贪心算法是指:在每一步求解的步骤中,它要求“贪婪”的选择最佳操作,并希望通过一系列的最优选择,能够产生一个问题的(全局的)最优解。 贪心算法每一步必须满足一下条件: a、可行的:即它必须满足问题的约束。 b、局部最优:他是当前步骤中所有可行选择中最佳的局部选择。 c、不可取 阅读全文
posted @ 2018-11-28 18:29 嘉兰 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目 2、问题描述 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定的 阅读全文
posted @ 2018-10-31 23:51 嘉兰 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 1、对动态规划算法的理解: 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,这些子问题往往有重叠子问题,从这些子问题的解得到原问题的解。可以用一个表来记录所有已经解决的子问题的答案,不管这个子问题以后是否被用到,只要它被计算过,就把结果填入表中。动态规划算法往往适用于解最优化 阅读全文
posted @ 2018-10-26 17:46 嘉兰 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目: 题目来源:《计算机算法设计与分析》,王晓东 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 2、问题描述: 二分搜索算法: 设a[0:n-1]是 阅读全文
posted @ 2018-10-12 10:28 嘉兰 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 1、浅谈一下对二分法思想的体会: 个人认为二分法思想其实体现了数学的逼近过程,优化了解题效率。 二分法是为了减少遍历数组的时间复杂度,但是二分法遍历的数组应该是有序数组。有些问题用二分法解决时不会直接给出有序数组,有时需要我们提取出对应于问题答案的一组数放在数组里并排序。在二分查找里面的主要思想是: 阅读全文
posted @ 2018-10-10 18:37 嘉兰 阅读(129) 评论(0) 推荐(0) 编辑