
算法
文章平均质量分 60
HeinSven
发表,是对技术最好的记忆。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法扩充知识-贝尔曼规则
有n个机器零件的集合记为设i:最优加工方案中,第一个加工的零件。t:当第一台机器加工零件i时,第二台机器,没有加工零件i,的空闲时间。T(S,t):第一个零件开始在第一台机器上加工,到最后一个零件在第二台机器上结束所需要的总时间。:零件i在第一台机器上加工所需要的时间。t有两种情况,可能比小,也能比大。接下来,当第一台机器加工余下集合 S-{i} 的...原创 2019-02-14 03:01:54 · 1009 阅读 · 0 评论 -
算法扩充知识-并查集
背景:若一个家族过于庞大,要判断两个人是否是亲戚,不太容易。现规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x和y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。简介:并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。主要操作:1、初始化。把每个点所在集合初始化为其自身。2、查找。(1)查找时,采用递归的方法找其祖宗,祖宗集合号等于自己时...原创 2019-02-11 15:34:13 · 266 阅读 · 0 评论 -
算法扩充知识-优先队列
优先队列(priority queue)具有最高级先出的行为特征。优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有:查找 插入一个新元素 删除说明:查找和删除操作,针对搜索优先权最大的元素。若有相同的优先权,查找与删除操作可根据任意优先权进行。优先队列:priority_queue<int, vector<int>,...原创 2019-02-21 17:05:22 · 221 阅读 · 0 评论 -
算法扩充知识-特征方程和通项公式
斐波那契数列通项公式:特征方程推导:如果有一个数列形式是:设有x、y,使得:移项运算得:与原方程一一对应得: ,对于斐波那契数列递推公式:,有再解出对应的y:再看公式:可得一个公比为y的等比数列则等比数列通项公式为:...原创 2019-02-21 16:23:07 · 4422 阅读 · 0 评论 -
回溯法-n皇后问题
问题描述:在nxn的棋盘上,放置彼此不受攻击的n个皇后。规则:皇后可以攻击与之在同一行,同一列,同一斜线上的棋子。以行为主导(不用再判断是否同行了)算法设计:(1)定义问题的解空间:问题解的形式为n元组:分量xi表示第i个皇后放置在第i行,第xi列。(2)解空间的组织结构:m叉树(3)搜索解空间:约束条件:,不同列。,不同斜线。限界条件:不存在放置方案好...原创 2019-02-04 00:22:13 · 1928 阅读 · 0 评论 -
回溯法-简介
回溯法本质是,走不通就退回再走的技术。优选搜索法:按照选优条件深度优先搜索,以达到目标。(1)解空间:所有可能解组成的空间。解的组织形式 -> n元组{x1,x2,...,xn}3个物品的0-1背包问题 -> {x1,x2,x3}显约束:对解分量的取值范围的限定。(2)解空间的组织结构 -> 解空间树(3)搜索解空间树隐约束:对能否得到问题的可行解...原创 2019-02-01 23:52:02 · 1213 阅读 · 0 评论 -
动态规划-最长公共子序列
问题描述:给定两个序列和,找出X和Y的一个最长公共子序列。算法分析:暴力法:X有2^m个子序列,逐个匹配Y的子序列。动态规划法:(1)分析最优解的结构特征:假设是X和Y的最长公共子序列。证明:最优解包含局部最优解。①,是和的最长公共子序列。若不是,设M是,则,但,矛盾!②,去掉,则是和的最长公共子序列。如果不是,设M是,则,在后+,则M也是和...原创 2019-01-13 00:43:24 · 626 阅读 · 2 评论 -
动态规划-矩阵连乘
动态规划特点:①分成许多阶段或多个子问题。②按顺序求解各个子问题。③通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。基本要素:最优子结构性质:原问题的最优解包含了其子问题的最优解。子问题重叠性质:每次产生的子问题并不总是新问题,有些子问题被反复计算多次。步骤:刻画结构特征。递归定义最优值。自底向上地计算出最优值。构造最优解。问题描述:矩...原创 2019-01-13 11:29:16 · 896 阅读 · 0 评论 -
动态规划-最优三角剖分
凸多边形的三角剖分:将一个凸多边形分割成互不相交的三角形的弦的集合。最优三角剖分:划分的各三角形上权函数之和最小的三角剖分。证明是否具有最优子结构性质:(1)分析最优解的结构特征假设在第k个顶点切开会得到最优解,那么原问题就变成了两个子问题和一个三角形,子问题分别是和,三角形为证明:原问题的最优解包含子问题的最优解。假设三角剖分的权值之和是c,三角剖分的权值之和是a,三角剖...原创 2019-02-19 02:28:59 · 2131 阅读 · 1 评论 -
分治法-大整数乘法
问题分析:在计算机上处理一些大数据相乘时,由于计算机硬件的限制,不能直接进行相乘得到想要的结果。可以将一个大的整数乘法分而治之,将大问题变成小问题,变成简单的小数乘法再进行合并,从而解决上述问题。当分解到只有一位数时,乘法就很简单了。算法设计:分解:首先将2个大整数a(n位)、b(m位)分解为两部分:ah和al、bh和blah表示大整数a的高位,al表示大整数a的...原创 2019-01-07 18:20:03 · 39444 阅读 · 10 评论 -
分治法-Master定理
一个大的复杂问题分为a个形式相同的子问题,这些子问题的规模为n/b,且分解或者合并的复杂度为f(n),那么总的时间复杂度可以表示为:例如合并排序算法的时间复杂度递推求解如下:ps:后面的O(n)表示一次分解和合并所用的时间。递推最终的规模为1,令n=2^x,则x=logn,那么有:1、递归树求解法递归树更能够形象地表达每层分解的结点和每层产生的成本。例如:T...原创 2019-01-07 19:45:33 · 2573 阅读 · 0 评论 -
分治法-线性时间选择
线性时间选择问题:给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。1、随机划分线性选择基本思想:只对划分出的子数组之一进行递归处理。 子数组的选择与划分元和k相关。#include <iostream>#include <ctime>using namespace std;int a[] = {5, 7, 3...原创 2018-12-30 03:06:10 · 2051 阅读 · 0 评论 -
分治法-循环赛日程表问题
问题描述:设有n=2^k个运动员,要进行网球循环赛。 每个选手必须与其他n-1个选手各赛一次。 每个选手一天只能赛一次。 循环赛一共进行n-1天。算法策略:1、将所有的选手分为两半,n个选手的比赛日程表可以通过为n/2个选手设计的比赛日程表来决定。2、递归地用对选手进行分割,直到只剩下2个选手时,只要让这2个选手进行比赛就可以了。(1)当k=1时,即人数为2人,此时表为...原创 2019-01-07 22:56:28 · 4509 阅读 · 2 评论 -
分治法-棋盘覆盖问题
问题描述:在一个2k×2k 个方格组成的棋盘中,有一个方格与其它不同,称该方格为特殊方格,且称该棋盘为一特殊棋盘。 k=2时的一种棋盘要求用下图所示的4种L形态骨牌覆盖给定的特殊棋盘。限制条件:(1)覆盖给定特殊棋盘上除特殊方格以外的所有方格。(2)任何2个L型骨牌不得重叠覆盖。解决思路:特殊方格在棋盘中可能出现的位置有4^k种,因而有...原创 2019-01-02 20:28:28 · 4374 阅读 · 0 评论 -
分治法-最接近点对问题
背景:计算机应用中经常采用点、圆等简单的几何对象表示物理实体,常需要了解其邻域中其他几何对象的信息例如:在空中交通控制中,若将飞机作为空间中的一个点来处理,则具有最大碰撞危险的两架飞机所处的点对,就是这个空间中距离最接近的一对点。这类问题是计算几何学中研究的基本问题之一。我们着重考虑平面上的最接近点对问题。最接近点对问题:给定平面上的n个点,找出其中的一对点,使得在n个点组成...原创 2018-12-30 19:05:29 · 16157 阅读 · 8 评论 -
贪心算法-会议安排问题
贪心算法特点:1、总是作出在当前看来最好的选择。2、从局部的最优选择到整体最优解。基本要素:1、最优子结构性质2、贪心选择性质贪心算法与动态规划的差异:相同点:都具有最优子结构性质。区别:动态规划:每步所作选择依赖于相关子问题的解(自底向上)贪心算法:仅在当前状态下作出最好选择(局部最优选择、自顶向下)会议安排问题:(1)对于每个会议i,起始时...原创 2019-03-01 21:21:15 · 5318 阅读 · 0 评论