- 博客(7)
- 收藏
- 关注
原创 第七章 分支限界算法
分支限界法类似于回溯法,是一种在问题的解空间树上搜索问题解的算法。分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。分支限界法常以广度优先的方式搜索问题的解空间树。队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。优先队列式分支限界法:按照优先队列中规定的优先级选取...
2019-11-02 09:21:55
1241
原创 第六章回溯算法
回溯算法的理论基础以深度优先的方式系统地搜索问题的解的方法称为回溯法。可以系统地搜索一个问题的所有解或任意解。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法空间特性(完全)二叉树.问题的解是一棵子树(一条路)通过深度优先搜索获得最优解回溯法的基本思想...
2019-11-02 09:13:24
656
原创 第五章贪心算法
贪心算法贪心算法总是作出在当前看来最好的选择。贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。这两种算法都是选择性算法,就是...
2019-10-31 21:24:45
396
原创 第四章 动态规划
动态规划算法的有效性依赖于问题本身所具有的两个重要性质:1.最优子结构2.重叠子问题设计动态规划法的步骤:找出最优解的性质,并刻画其结构特征;递归地定义最优值(写出动态规划方程);以自底向上的方式计算出最优值;根据计算最优值时得到的信息,构造一个最优解。矩阵连乘问题分析:A[1:n]的计算量= A[1:k]的计算量+A[k+1:n]的计算量+A[1:k]和A[k+1:n]相乘的...
2019-10-08 20:35:49
146
原创 第三章 递归与分治策略
Fibonacci数列分析:将n-1个圆盘移动到B ,第n个移动到C。#include <iostream>using namespace std;void move(char from ,char to) { cout<<“Move “<<from<<“to”<<to<<endl; }void h...
2019-10-08 20:31:41
101
原创 第二章 STL简介
容器共同操作操作insert(pos,e): 将元素e的拷贝安插于迭代器pos所指的位置erase(beg,end): 移除[beg,end]区间内的所有元素clear(): 移除所有元素****vectorc.size() 返回元素个数c.empty() 判断容器是否为空c.max_size() 返回元素最大可能数量(固定值)c.capacity() 返回重新分配空间前可容纳...
2019-10-08 20:28:05
102
原创 第一章 递推算法
标题第一章 递推算法1.特点:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式2.汉诺塔问题递推关系分析f(n)=2*f(n-1)+1边界条件:f(1)=1#include <iostream>usi...
2019-10-08 20:23:23
271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人