- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 C++继承和多态总结
继承 继承:在已有类的基础上创建新类的过程 一个 B 类继承A类,或称从类 A 派生类 B 类 A 称为基类(父类),类 B 称为派生类(子类) 多继承方式下构造函数的执行顺序: 先执行所有基类的构造函数 在C++的继承机制中,派生类吸收基类中除构造函数和析构函数之外的全部成员。 再执行对象成员的构造函数 通过在派生类中定义同名成员(包括成员函数和数据成员)来屏蔽(隐藏)在派生类中不起作用的部分基类成员。 最后执行派生类的构造函数 仅仅继承基类的成员是不够的,需要在派生类中添加新成员,以保证派生类自身
2020-05-21 14:32:43 774
原创 算法分析与设计6_贪心
贪心 在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。 从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。 如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一。 活动安排问题 活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子。 该
2020-05-11 19:46:16 296
原创 算法分析与设计5_动态规划
动态规划 动态规划算法通常用于求解具有某种最优性质的问题。 在这类问题中,可能会有许多可行解。 每一个解都对应于一个值,我们希望找到具有最优值的解。 基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。 如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。 我们可以用
2020-05-11 18:06:31 230
原创 算法分析与设计4_分治策略
分治策略 分治策略是对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同。 递归地解这些子问题,然后将各子问题的解合并得到原问题的解。 分治法的基本步骤 分治法在每一层递归上都有三个步骤: 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题; 合并:将各个子问题的解合并为原问题的解。 根据分治法的分割原则,原问题应该分
2020-05-11 17:36:17 335
原创 算法分析与设计3_递归
递归与分治策略 递归 任何一个可以用计算机求解的问题所需的计算时间都与其规模n有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 如果原问题可分割成k个子问题(1<k≤n),且这些子问题都可解,并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行的。 由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。 程序直接或间接调用自身的编程技巧称为递归算法(Recur
2020-05-11 17:13:20 181
原创 算法分析与设计2_递推算法
递归算法 递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。 递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。
2020-05-11 16:36:18 557
原创 算法分析与设计1_绪论
绪论 算法理论的两大论题: 算法设计—对于一个问题如何设计一个有效的算法 算法分析—如何评价或判断一个算法的优劣 算法的五大特性: 输入:一个算法有零个或多个输入。 输出:一个算法有一个或多个输出。 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。 确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。 可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。 问题的求解过程: 分析问题→设计算法→编写程序→整理结果 算法的描述方法
2020-05-11 16:25:20 515
原创 STL总结心得
第八周开始学习使用STL,并做了一个图书管理系统。做图书管理系统的过程中遇到了很多问题,代码也修改了很多遍。在修改的过程中,虽然花了很多时间,但也从中吸取了很多经验。 第一次做图书管理系统时,从早上10点开始,第二天下午才完成。写代码时也确实也遇到了不少麻烦。 在听完老师的讲解之后,我意识到我写的程序存在很多问题。在第一次作业中,我对STL还不是很了解,没有充分利用STL,写代码时只考虑到功能能不...
2020-04-28 00:04:11 582
原创 深搜剪枝-平板涂色
【题目描述】 CE数码公司开发了一种名为自动涂色机(APM)的产品。它能用预定的颜色给一块由不同尺寸且互不覆盖的矩形构成的平板涂色。 为了涂色,APM需要使用一组刷子。每个刷子涂一种不同的颜色C。APM拿起一把有颜色C的刷子,并给所有颜色为C且符合下面限制的矩形涂色: 为了避免颜料渗漏使颜色混合,一个矩形只能在所有紧靠它上方的矩形涂色后,才能涂色。例如图中矩形F必须在C和D涂色后才能涂色。注意,...
2020-04-12 23:02:16 284
原创 算法学习总结16
这些天把贪心算法的题写完了,这部分总体来说不是太难,习题“家庭作业”的解法跟例题“智力大冲浪”的解法很想,跟例题不同的是,要对算法进一步优化,否则会有两个测试点tle。习题“钓鱼”用优先队列好解决。深搜剪枝也做了一道题,感觉对这类算法还没有一个清晰的思路,接下来继续加强训练。 ...
2020-04-08 23:13:33 146
原创 C++学习总结
一.递归算法 程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。 直接或间接调用自身的函数称为递归函数 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。 例:求1 - 100的和 递归:fn ( n ) = n+fn ( n-1) 终止条件:fn(1)=1 递归代码: #include <iostream> using namespac...
2020-04-06 15:38:20 155
原创 算法学习总结15
这几天把深搜剪枝的例题写了一遍,虽然写了例题,但我对剪枝的理解的不是很清楚,贪心算法的题也做了几道。 接下来继续深入理解剪枝算法,顺便把贪心的题做完 ...
2020-04-05 23:42:46 87
原创 算法学习总结12
这段时间写的算法并不多,写了一些哈希算法和树状数组算法,感觉不是非常明白,也去复习了递归和广度优先算法,还有广搜优化的算法还是不明白,接下来我会继续解决这些问题,这段时间练习的时间少了,接下来要加强练习。 ...
2020-03-18 22:27:41 68
原创 算法学习总结10
从上次写总结起,已经有两个多月没写算法总结了。今天就总结寒假到现在为止的学习情况。 在寒假一个多月的时间里,我把书上大部分题做完了,大概还有20多道题还没做完,我在解决并查集问题的时候遇到了困难,写出来的程序经常因为超时无法通过,接下来继续想办法解决。 另外,我已经开始下个阶段的深学习,开始入手贪心、二分三分、剪枝、广搜优化等算法。 ...
2020-02-26 21:57:50 75
原创 算法学习总结9
这一段时间要备考,所以只做了栈的题。 中缀表达式的题还没有写出来。写括号匹配问题的时候由于没有看清题目捣鼓了很久没有写出来,这也算是给自己的一个教训,下次审题的时候要认真点。 由于接下来一段时间要备考,所以接下来一段时间对算法的投入减少,但每天还是要坚持练习。 ...
2019-12-08 22:51:16 96
原创 算法学习总结8
本次练习主要完成了动规算法,也做了几道栈的题。 栈主要用于解决括号匹配和表达式等问题,难度不是很大。 动规算法解题关键是找出状态主要方程,有些动规算法题目的解法思路跟递推有点像。 接下来练习广搜算法。 ...
2019-12-04 23:52:47 106
原创 数据结构-6
第6章 图 6.1 图的逻辑结构 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。 在线性表中,元素个数可以为零,称为空表; 在树中,结点个数可以为零,称为空树; 在图中,顶点个数不能为零,但可以没有边。 若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)。 如果图...
2019-12-03 08:17:05 519
原创 数据逻辑-5
第 5 章 树和二叉树 5.1 树的逻辑结构 树的定义 树:n(n≥0)个结点的有限集合。 当n=0时,称为空树; 任意一棵非空树满足以下条件: ⑴ 有且仅有一个特定的称为根的结点; ⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。 树的基本术语 结点的度:结点所拥有的子树的个数。...
2019-12-03 08:16:54 244
原创 数据结构-4
第四章 字符串和多维数组 4.2 字符串 串的逻辑结构 串:零个或多个字符组成的有限序列。 串长度:串中所包含的字符个数。 空串:长度为0的串,记为:" “。 非空串通常记为: S=” s1 s2 …… sn " 其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。 串的逻辑结构 子串:串中任意个连续的字符组成的子序列。 主串:包含子串的串。 子串的位置:...
2019-12-03 08:16:36 289
原创 算法学习总结6
本次练习主要做了分治算法的题目,动规算法的题只做了几道。 分治算法关键是把一个大问题划分成一个个小问题,感觉做起来比贪心顺手,动态规划算法关键是学出状态转移方程,这个比较不熟练。 接下来的时间里加强对动规算法的训练,最近学习任务重,算法的练习有点松懈了,希望接下来抓紧时间练习。 ...
2019-12-01 23:25:13 55
原创 算法学习总结6
这几天把高精度和贪心的题算完了。 高精部分的除法算法掌握的还不是很好,后面有时间再做练习。 贪心算法有些题做起来不容易找到思路,但总体上感觉良好。 另外,也做了两道动规的题,可能因为很长时间没接触动规算法,感觉有点生疏了。 接下来几天打算把尽量分治和动规剩下的题做完,加强对这两类算法的理解。 ...
2019-11-27 23:57:44 125
原创 算法学习总结5
这几天把排序的题做了一遍,也做了一些高精的题,加深了对这些类型题目的了解。 由于这几天比较忙,训练量减少了,以后要加快速度了。 高精算法的高精度除法方面还是掌握得不是很好,接下来几天加强这方面的训练。 另外,接下来还要复习其他算法,加快进度。 ...
2019-11-24 23:27:31 68
原创 算法学习总结4
这几天基本做完了递推算法的题,也做了几道高精和排序的题。 虽然做了一些题,但我感觉还远远不够。 这几天学习的速度比上一次慢了,要加快速度。 尽早进入下一个阶段。 ...
2019-11-20 23:25:40 115
原创 算法学习总结3
这几天重新调整了自己的学习计划,加快了学习的进度,继续刷了书上的题。 这几天复习算法如下: 1.递归算法 2.贪心算法 3.搜索与回溯算法 本次学习完成了以上算法的部分题目。 通过这几天的训练,总结了一些经验,接下来尽快做完剩下的习题。 在接下来的时间里还要继续加强训练强度,早日进入下一个学习阶段。 ...
2019-11-17 23:17:10 70
原创 算法学习总结2
这几天没有学习新的知识,只是继续巩固书上的内容,由于最近比较忙,只做了几道背包问题和动态规划经典题。 总的来说,这几天的复习巩固了所学的知识,但同时也注意到自己的时间规划出了一些问题。 在接下来的学习中,我也要做好设计规划,加强算法方面的训练,尽早进入下一个学习阶段。 ...
2019-11-13 23:52:31 61
原创 算法学习总结1
动态规划 最长上升子序列 【题目描述】 一个数的序列bi,当b1<b2<…<bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,…,aN),我们可以得到一些上升的子序列(ai1,ai2,…,aiK),这里1≤i1<i2<…<iK≤N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列中...
2019-11-11 00:14:58 180
原创 数据结构-2
第2章 线性表 2.1 线性表的逻辑结构 线性表( Linear List )的定义 是零个或多个具有相同类型的数据元素的有限序列。 数据元素的个数定义为线性表的 长度 。长度等于零时称为空表,一个非空表通常记为 L = ( a 1 , a 2 ,……, a n ) 其中, a i ( 1 ≤ i ≤ n )称为数据元素, 下标 i 表示该元素在线性表中的位置或序号, 称元素 a i 位于...
2019-11-06 20:40:50 80
原创 数据结构-3
第3章 栈与队列 3.1.1 栈的逻辑结构 栈:限定仅在表尾进行插入和删除操作的线性表。 空栈:不含任何数据元素的栈。 允许插入和删除的一端称为栈顶,另一端称为栈底。 顺序栈类的声明 const int MAX_SIZE=100; template <class T> class seqStack { public: seqStack ( ) ; ...
2019-11-06 19:27:42 61
LCC-WIN32汉化
2019-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人