导航

2019年12月19日 #

对回溯算法的理解

摘要: 一、对回溯算法的理解 应用回溯算法的三个步骤: 1.首先得构造解空间树:子集树和排列树; 2.以深度优先的方式搜索解空间:递归或迭代; 3.设计剪枝函数避免无效搜索:使用约束函数,剪去不满足约束条件的路径或使用限界函数,剪去不能得到最优解的路径。 回溯法解问题的一个显著特征是,解空间树是虚拟的,在任 阅读全文

posted @ 2019-12-19 20:06 Binet 阅读(464) 评论(0) 推荐(0) 编辑

2019年11月19日 #

程序存储问题(贪心算法)

摘要: 问题描述 条件:磁盘空间有限;程序大小不同。 在有限的磁盘上存放尽可能多的程序,就要求选择的程序尽可能小。 算法描述 贪心算法:总是从可选程序中选择最小的试放入磁盘。 1. 排序:对程序按大小升序排; 2. 循环添加:从i = 1开始,选择排序后序列的第 i 个(即a[i],1 <= i <= n) 阅读全文

posted @ 2019-11-19 23:53 Binet 阅读(1736) 评论(0) 推荐(0) 编辑

2019年11月3日 #

动态规划学习小结

摘要: 对动态规划的理解 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多 阅读全文

posted @ 2019-11-03 23:58 Binet 阅读(178) 评论(0) 推荐(0) 编辑

2019年10月21日 #

动态规划经典例子——编辑距离问题

摘要: 问题描述: 两个字符串,一个是起点字符串,另一个是终点。 例如,起点字符串ddl到终点字符串de的转换步骤如下: ddl->del->def。 编辑距离为2。 算法分析: 首先考虑上面例子中ddl的第一个字符和def的第一个字符,它们是一样的,所以只需要计算a[2...lengthA]和b[2... 阅读全文

posted @ 2019-10-21 23:57 Binet 阅读(286) 评论(1) 推荐(0) 编辑

2019年10月15日 #

对分治法思想的体会

摘要: 分治法的基本思想是什么? 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 更准确地说是,将规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。递归地解决子问题,然后将解合并得到原问题的解。 什么情况下使用分治法? 分治法 阅读全文

posted @ 2019-10-15 23:48 Binet 阅读(344) 评论(0) 推荐(0) 编辑

2019年9月23日 #

算法第二章上机实践报告

摘要: 实践题目:7-3 两个有序序列的中位数 题目描述:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A​0​​,A​1​​,⋯,A​N−1​​的中位数指A​(N−1)/2​​的值,即第⌊(N+1)/2⌋个数(A​0​​为第1个数)。 输入格式: 输入分三行。第一行给 阅读全文

posted @ 2019-09-23 00:39 Binet 阅读(191) 评论(0) 推荐(0) 编辑

2019年9月8日 #

C++代码规范及《数学之美》读后感

摘要: 代码规范 采用Google C++ Style Guide 原文链接:https://google.github.io/styleguide/cppguide.html 中文版链接:https://zh-google-styleguide.readthedocs.io/en/latest/googl 阅读全文

posted @ 2019-09-08 00:38 Binet 阅读(244) 评论(0) 推荐(0) 编辑

2018年12月8日 #

第二次博客作业

摘要: 1 目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。 函数:函数的引用调用、嵌套调用、递归调用;作用域和存储类别;程序的多文件组织。 预编译处理。 数组:例子:冒泡排序、选择排序、插入排序、顺序查找、折半查找(能基本理解但还没能独立 阅读全文

posted @ 2018-12-08 01:03 Binet 阅读(597) 评论(0) 推荐(0) 编辑

2018年10月5日 #

第一次博客作业(初识C++)

摘要: Q1:学习《C++语言程序设计》课程之前,你知道什么是编程吗?谈谈上这门课之前你对编程的理解,以及你对自己编程能力的评估。 A1:开始课程之前,我认为编程是这样的:用计算机的语言写一份流程,然后交给计算机执行。懵懂的初学者是目前我在编程世界的ID。 Q2:学习《C++语言程序设计》课程两周后,你已经 阅读全文

posted @ 2018-10-05 20:49 Binet 阅读(136) 评论(0) 推荐(0) 编辑