摘要: 1. 对回溯算法的理解 回溯法是按深度优先策略,从根结点出发搜索解空间树,如果某结点不包含解,则跳过以该结点为根的子树,逐层向祖先结点回溯;当求问题的一个解时,只要搜索到问题的一个解就可结束,当求问题最优解时,系统地搜索问题的所有解,比较找出最优解。回溯法有两种提高搜索效率的策略,一是使用约束函数剪 阅读全文
posted @ 2018-12-23 13:56 L莹T 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1. 实践题目及问题描述 工作分配问题;n件工作分配给n个人,为每一个人都分配1 件不同的工作,工作i分配给第j个人所需的费用为cij,设计一个算法,使总费用最小。 2. 算法描述 (1) 解空间 {<x11,x12…x1n>,<x21,x22…x2n>……<xn1,xn2…xnn>} 其中 <x1 阅读全文
posted @ 2018-12-22 20:05 L莹T 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目及问题描述: 7-1 ;2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较,用 2 路合并算法将k 个排好序的序列合并成一个序列,设计一个算法确定合并这个序列的最优合并顺序(比较次数最少)和最差合并序列(比较次数最多)。 2.算法描述: 比较次数最少就是每次都是合并序 阅读全文
posted @ 2018-12-01 14:18 L莹T 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1.对贪心算法的理解: 贪心算法概念:做出目前看来最好的选择,不是先考虑整体最优而是局部最优,通过一步步选择再达到整体最优。 贪心算法的基本要素:a.贪心选择性质(问题的整体最优解可以通过一系列局部最优解来达到)b.最优子结构性质(问题最优解包括其子问题的最优解)。 2.汽车加油问题的贪心选择性质: 阅读全文
posted @ 2018-11-30 13:54 L莹T 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 1.问题:数字三角形 三角形由数字构成,计算出从三角形的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 2.算法描述: 运用自底向上的动态规划算法。从倒数第二行开始,计算每个数加上其左下角和右下角之中的较大者,再存到原来的位置,依次向上,最后输出第一个数即可。 递 阅读全文
posted @ 2018-11-14 20:27 L莹T 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1.对动态规划算法的理解: 将待解问题分解成若干个有关联的子问题,先求解出最小的子问题,在求解出临近的规模比它大的问题,直至到待解问题。该算法可以保存已解决的子问题的答案,在需要时再找出已解决的子问题的答案,避免大量重复计算,减少时间复杂度。我认为运用这个算法的关键点在于找出找出问题的递归过程并列出 阅读全文
posted @ 2018-11-14 19:13 L莹T 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 1.题目:改写二分搜索算法 2.问题描述:找出特定数字x在特定有序序列中的位置,若x不在序列中,则输出序列中小于x的最大元素的位置和大于x的最小元素的位置,若x在序列中,则输出两次x在序列中的位置 3.算法描述:定义一个函数BS(int a[],int x,int n)返回所求位置,a数组用来存放序 阅读全文
posted @ 2018-10-21 17:50 L莹T 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1.对二分法思想的体会: 二分法就是把所有元素一分为二,取中间的元素与要找的元素比较,看是否相等,不相等再去左半边或右半边查找,依次下去。每次查找的规模都是上一次的一半,减少了规模,可以更方便更快速地找到特定元素。顺序查找最坏时间复杂度是O(n),二分查找是O(logn),效率比顺序查找高。但二分法 阅读全文
posted @ 2018-10-19 15:29 L莹T 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1.对二分法思想的体会: 把一个大问题一分为二,要找的数与中间的数比较,不符合再去左半边或右半边寻找,依次下去。这样可以减少寻找的规模,更方便更快速地找到特定数字。 2.结对编程情况: 效果比一个人编程好,因为有不懂的可以问队友。课上两人合作编程的效果一般,因为是分开打不同的题,遇到不懂的再问对方, 阅读全文
posted @ 2018-10-19 14:54 L莹T 阅读(71) 评论(0) 推荐(0) 编辑