摘要: 1. 你对回溯算法的理解 应用回溯算法的三个步骤: 1.首先得构造解空间树:子集树和排列树; 2.以深度优先的方式搜索解空间:递归或迭代; 3.设计剪枝函数避免无效搜索:使用约束函数,剪去不满足约束条件的路径或使用限界函数,剪去不能得到最优解的路径。 回溯法解问题的一个显著特征是,解空间树是虚拟的, 阅读全文
posted @ 2020-12-19 16:09 刘思彤 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、对贪心算法的理解 贪心算法又称之为贪婪算法,在考虑问题时,总是做出在当前状况来说最好的算则,而不从整理来考虑。从某种意义上说是局部最优解,贪心算法所得到的答案并不一定是整体最优解,所以在使用贪心算法一定要考虑清楚,是否能使用贪心算法。选择的贪心策略必须具有无后效性,即当前选择的结果必须不能对之前 阅读全文
posted @ 2020-11-15 01:02 刘思彤 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1. 作业题"单调递增最长子序列"分析。 1.1 根据最优子结构性质,列出递归方程式 设c[ ]存放输入的一组数,l[ ]存放单调递增子序列的长度,max为l[ ]中最大元素以得到最长单调递增子序列的长度 递归方程式: l[ i ] = l[ j ] + 1, c[ i ] > c[ j ] && 阅读全文
posted @ 2020-10-31 21:08 刘思彤 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 实践题目名称: 找第k小的数 问题描述: 设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]中的某个元素x(如a[lef 阅读全文
posted @ 2020-10-04 00:17 刘思彤 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 对分治法的体会: 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 更准确地说是,将规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。递归地解决子问题,然后将解合并得到原问题的解。 分治法在以下几种问题的情况来说是一种很 阅读全文
posted @ 2020-10-03 23:44 刘思彤 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 参考编码规范:https://files-cdn.cnblogs.com/files/juking/腾讯Cplusplus编码规范.pdf 《数学之美》中作者有列出他对于某一实际问题的多种不同算法。这也充分说明了:实现一个结果可以通过不同的思路想法,即一种问题不仅限于一种解法。想起之前的数学课、物理 阅读全文
posted @ 2020-09-15 00:39 刘思彤 阅读(164) 评论(1) 推荐(0) 编辑