E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
5.LeetCode-算法笔记
0027
算法笔记
——【回溯法】回溯法与装载问题
1、回溯法 (1)描述:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。 (2)原理: 回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层
liufeng_king
·
2013-04-05 21:00
回溯法
算法笔记
子集树
装载问题
排列数
算法笔记
之 拓扑排序 POJ 2585(Window Pains)
http://poj.org/problem?id=2585此题中,每个窗口的位置是固定的。主要就是通过覆盖关系,来建立拓扑排序。如果可以排序,就说明没有问题。重点在这里。//比如在地图中的[2][2]位置,可以放置{1,2,4,5},如果这个地方显示的是5,则说明5覆盖了1,2,4staticintdir[][][]={//每个位置可以放置哪些窗口{{1},{1,2},{2,3},{3}},{{
gaotong2055
·
2013-04-04 11:00
算法笔记
之 拓扑排序 POJ 2585(Window Pains)
http://poj.org/problem?id=2585 此题中,每个窗口的位置是固定的。主要就是通过覆盖关系,来建立拓扑排序。如果可以排序,就说明没有问题。 重点在这里。 //比如在地图中的[2][2]位置,可以放置{1,2,4,5},如果这个地方显示的是5,则说明 5覆盖了1,2,4static int dir[][][]= { //每个位置可以放置哪些窗口{ {1},{1,2}
从此醉
·
2013-04-04 11:00
window
0025
算法笔记
——【贪心算法】最小生成树问题
1、问题描述 设G=(V,E)是无向连通带权图,即一个网络。E中每条边(v,w)的权为c[v][w]。如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为该生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。 网络的最小生成树在实际中有广泛应用。例如,在设计通信网络时,用图的顶点表示城市,用边(v,w)的权c[v][w]表示建立
liufeng_king
·
2013-03-29 21:00
最小生成树
Prim算法
贪心算法
kruskal算法
算法笔记
算法笔记
之 并查集入门 POJ 1611
http://poj.org/problem?id=1611 Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize
从此醉
·
2013-03-28 16:00
poj
算法笔记
之 并查集入门 POJ 1611
http://poj.org/problem?id=1611DescriptionSevereacuterespiratorysyndrome(SARS),anatypicalpneumoniaofunknownaetiology,wasrecognizedasaglobalthreatinmid-March2003.Tominimizetransmissiontoothers,thebestst
gaotong2055
·
2013-03-28 16:00
0024
算法笔记
——【贪心算法】单源最短路径问题
1、问题描述 给定带权有向图G=(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 2、Dijkstra算法 Dijkstra算法是解单源最短路径问题的贪心算法。 其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当
liufeng_king
·
2013-03-27 18:00
贪心算法
dijkstra算法
单源最短路径
算法笔记
特殊路径
0023
算法笔记
——【贪心算法】哈夫曼编码问题
1、问题描述 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法。其压缩率通常在20%~90%之间。哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。一个包含100,000个字符的文件,各字符出现频率不同,如下表所示。 有多种方式表示文件中的信息,若用0,1码表示字符的方法,即每个字符用唯一的一个0,1串表示。若采用定长编码表示,则需要3位表示一
liufeng_king
·
2013-03-26 19:00
二叉树
最小堆
贪心算法
算法笔记
哈夫曼问题
0022
算法笔记
——【贪心算法】背包问题,最优装载问题
1、背包问题 (1)0-1背包问题:给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 注:在选择装入背包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。 0-1背包问题可用动态规划算法来求解,具体过程可参看笔者博文《0019
liufeng_king
·
2013-03-24 11:00
背包问题
贪心算法
最优装载问题
0-1背包问题
算法笔记
0021
算法笔记
——【贪心算法】贪心算法与活动安排问题
1、贪心算法 (1)原理:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。 (2)特性:贪心算法采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题,
liufeng_king
·
2013-03-23 11:00
动态规划
贪心算法
算法笔记
最优子结构性质
活动安排问题
0020
算法笔记
——【动态规划】最优二叉搜索树问题
1、问题描速:设S={x1,x2,···,xn}是一个有序集合,且x1,x2,···,xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质:存储于每个顶点中的元素x大于其左子树中任一个顶点中存储的元素,小于其右子树中任意顶点中存储的元素。二叉树中的叶顶点是形如(xi,xi+1)的开区间。在表示S的二叉搜索树中搜索一个元素x,返回的结果有两种情形:(1)在二叉树的内部顶点处找
风仲达
·
2013-03-20 10:30
最优二叉搜索树
算法笔记
最小平均路长
四边形不等式
动态规划
算法
算法笔记——《算法设计与分析》
0020
算法笔记
——【动态规划】最优二叉搜索树问题
1、问题描速: 设S={x1,x2,···,xn}是一个有序集合,且x1,x2,···,xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质:存储于每个顶点中的元素x大于其左子树中任一个顶点中存储的元素,小于其右子树中任意顶点中存储的元素。二叉树中的叶顶点是形如(xi,xi+1)的开区间。在表示S的二叉搜索树中搜索一个元素x,返回的结果有两种情形: (1)
liufeng_king
·
2013-03-20 10:00
动态规划
算法笔记
四边形不等式
最优二叉搜索树
最小平均路长
0019
算法笔记
——【动态规划】0-1背包问题
1、问题描述:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大?形式化描述:给定c>0,wi>0,vi>0,1≤i≤n.要求找一n元向量(x1,x2,…,xn,),xi∈{0,1},∋∑wixi≤c,且∑vixi达最大.即一个特殊的整数规划问题。2、最优性原理:设(y1,y2,…,yn)是(3.4.1)的一个最优解
风仲达
·
2013-03-18 16:08
算法
算法笔记——《算法设计与分析》
0019
算法笔记
——【动态规划】0-1背包问题
1、问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c>0,wi>0,vi>0,1≤i≤n.要求找一n元向量(x1,x2,…,xn,),xi∈{0,1},∋∑wixi≤c,且∑vixi达最大.即一个特殊的整数规划问题。 2、最优性原理: 设(y1,
liufeng_king
·
2013-03-18 16:00
动态规划
背包问题
最优子结构
跳跃点
算法笔记
算法笔记
之 贪心算法 (题目1082:代理服务器)
题目描述: 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,
从此醉
·
2013-03-16 13:00
贪心算法
算法笔记
之 贪心算法 (题目1082:代理服务器)
题目描述: 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这m个服务器的IP地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,使得代理服务器切换的次数尽
gaotong2055
·
2013-03-16 13:00
0018
算法笔记
——【动态规划】流水作业调度问题与Johnson法则
1、问题描述: n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。 2、问题分析 直观上,一个最优调
liufeng_king
·
2013-03-15 16:00
动态规划
Johnson
算法笔记
流水作业调度问题
0017
算法笔记
——【动态规划】电路布线问题
1、问题描述: 在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i))将上端接线柱i与下端接线柱π(i)相连,如下图。其中,π(i),1≤i≤n,是{1,2,…,n}的一个排列。导线(I,π(i))称为该电路板上的第i条连线。对于任何1≤i≤j≤n,第i条连线和第j条连线相交的充要条件是π(i)>π(j).π(i)={8,7,4,2,5,1,9,3,10
liufeng_king
·
2013-03-14 09:00
动态规划
最优子结构
算法笔记
电路布线
0016
算法笔记
——【动态规划】图像压缩问题
1、问题描述: 在计算机中,常用像素点的灰度值序列{p1,p1,……pn}表示图像。其中整数pi,1 usingnamespacestd; constintN=7; intlength(inti); voidCompress(intn,intp[],ints[],intl[],intb[]); voidTracebace(intn,int&i,ints[],intl[]); vo
liufeng_king
·
2013-03-07 22:00
动态规划
图像压缩
最优子结构
算法笔记
0026
算法笔记
——【贪心算法】多机调度问题
1、问题描述 设有n个独立的作业{1,2,…,n},由m台相同的机器进行加工处理.作业i所需时间为ti.约定:任何作业可以在任何一台机器上加工处理,但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 多机调度问题是一个NP完全问题,到目前为止还没有完全有效的解法。对于这类问题,用贪心选择策略
liufeng_king
·
2013-03-07 19:00
最小堆
贪心算法
多机调度问题
算法笔记
算法笔记
之 全排列的 非递归求解
先交换,再把后面的数组逆置就行了 递归的方法点下面:
算法笔记
之 全排列算法 一 递归求解 完整的Java代码: public class 全排列 { private static
从此醉
·
2013-03-07 14:00
全排列
算法笔记
之 全排列的 非递归求解
先交换,再把后面的数组逆置就行了递归的方法点下面:
算法笔记
之全排列算法一递归求解完整的Java代码:publicclass全排列{ privatestaticvoidswap(int[]array,inti
gaotong2055
·
2013-03-07 14:00
算法笔记
之 快速排序的几种写法
这是基本都一样的部分。voidprint_arr(int*arr,intn){ inti; for(i=0;ix);//从前到后第一个比基准(x)大的数。j指向该数 if(i>=j) break; //进行交换操作 inttemp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } arr[start]=arr[j]; arr[j]=x; //print_arr(arr,
gaotong2055
·
2013-03-06 12:00
算法笔记
之 快速排序的几种写法
这是基本都一样的部分。 void print_arr(int *arr, int n) { int i; for (i = 0; i < n; i++) { if (!i) { printf("%d", arr[i]); } else { printf(" %d", arr[i]); } } printf(&quo
从此醉
·
2013-03-06 12:00
快速排序
0015
算法笔记
——【动态规划】多边形游戏问题
1、问题描述: 给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针依次编号为1~N。下图给出了一个N=4个顶点的多边形。 游戏规则:(1)首先,移走一条边。(2)然后进行下面的操作:选中一条边E,该边有两个相邻的顶点,不妨称为V1和V2。对V1和V2顶点所标的整数按照E上所标运算符号(+或是×)进行运算,得到一个
liufeng_king
·
2013-03-06 11:00
动态规划
最优子结构
算法笔记
多边形游戏
0014
算法笔记
——【动态规划】凸多边形最优三角剖分
1、问题相关定义: (1)凸多边形的三角剖分:将凸多边形分割成互不相交的三角形的弦的集合T。 (2)最优剖分:给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖分,使得该三角剖分中诸三角形上权之和为最小。 凸多边形三角剖分如下图所示: 2、最优子结构性质: 若凸(n+1)边形P={V0,V1……Vn}的最优三
liufeng_king
·
2013-03-05 20:00
动态规划
三角剖分
算法笔记
凸多边形最优解
算法笔记
之 计数排序
适合整数排序,以及数值较小的情况。当输入的元素是n个0到k之间的整数时,它的运行时间是Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序
gaotong2055
·
2013-03-05 17:00
算法笔记
之 计数排序
适合整数排序,以及数值较小的情况。 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n+k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。 由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法
从此醉
·
2013-03-05 17:00
算法
算法笔记
之 整数划分
例如:6有如下11种划分则p(6)=116;5+1;4+2,4+1+1;3+3,3+2+1,3+1+1+1;2+2+2,2+2+1+1,2+1+1+1+1;1+1+1+1+1+1;在正整数n所有划分中,将最大加数n1不大于m的划分个数记作q(n,m).我们可以建立如下递归关系:(1)q(n,1)=1,n>=1最大加数不大于1,则只有一种划分,n=1+1+1+...+1(2)q(n,m)=q(n,n
gaotong2055
·
2013-03-05 16:00
算法笔记
之 整数划分
例如:6 有如下11种划分则p(6)=11 6; 5+1; 4+2, 4+1+1; 3+3, 3+2+1, 3+1+1+1; 2+2+2, 2+2+1+1, 2+1+1+1+1; 1+1+1+1+1+1; 在正整数n所有划分中,将最大加数n1不大于m的划分个数记作q(n, m). 我们可以建立如下递归关系: (1) q(n, 1) = 1, n>=1 最大加数不
从此醉
·
2013-03-05 16:00
算法
0013
算法笔记
——【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
1、最大子段和问题 问题定义:对于给定序列a1,a2,a3……an,寻找它的某个连续子段,使得其和最大。如( -2,11,-4,13,-5,-2)最大子段是{ 11,-4,13}其和为20。 (1)枚举法求解 枚举法思路如下: 以a[0]开始:{a[0]},{a[0],a[1]},{a[0],a[1],a[2]}……{a[0],a[1],……a[n]}共n个
liufeng_king
·
2013-03-05 09:00
dp
最大字段和问题
最大子矩阵和问题
最大m子段和问题
算法笔记
之 全排列算法 一 递归求解
集合R={1,2,3,4}的全排列可以分解为:1,{2,3,4}的全排列+2,{1,3,4}的全排列+3,{1,2,4}的全排列+4,{1,2,3}的全排列。继续分解:{2,3,4}为2,{3,4}的全排列,3,{2,4},4,{2,3}…………………………………………直到集合里只有一个元素,就可直接输出了.这个是非递归的方法:http://blog.csdn.net/gaotong2055/ar
从此醉
·
2013-03-05 06:18
C/C++
数据结构/基础算法
算法笔记
之 全排列算法 一 递归求解
集合R={1,2,3,4}的全排列可以分解为:1,{2,3,4}的全排列+2,{1,3,4}的全排列+3,{1,2,4}的全排列+4,{1,2,3}的全排列。继续分解:{2,3,4}为2,{3,4}的全排列,3,{2,4},4,{2,3}…………………………………………直到集合里只有一个元素,就可直接输出了.这个是非递归的方法:http://blog.csdn.net/gaotong2055/ar
从此醉
·
2013-03-05 06:18
C/C++
数据结构/基础算法
算法笔记
之 全排列算法 一 递归求解
集合R={1,2,3,4}的全排列 可以分解为:1,{2,3,4}的全排列 + 2,{1,3,4}的全排列 + 3,{1,2,4}的全排列 + 4,{1,2,3}的全排列。 继续分解:{2,3,4} 为 2,{3,4}的全排列,3,{2,4}, 4,{2,3}……………………………… ………… 直到集合里只有一个元素,就可直接输出了. 这个是非递归的方法:http://blog.cs
从此醉
·
2013-03-05 06:00
全排列
算法笔记
之 全排列算法 一 递归求解
集合R={1,2,3,4}的全排列可以分解为:1,{2,3,4}的全排列+2,{1,3,4}的全排列+3,{1,2,4}的全排列+4,{1,2,3}的全排列。继续分解:{2,3,4}为2,{3,4}的全排列,3,{2,4}, 4,{2,3}…………………………………………直到集合里只有一个元素,就可直接输出了.这个是非递归的方法:http://blog.csdn.net/gaotong2055/a
gaotong2055
·
2013-03-05 06:00
最大熵
算法笔记
最大熵
算法笔记
最大熵,就是要保留全部的不确定性,将风险降到最小,从信息论的角度讲,就是保留了最大的不确定性。
wuwuwuwuwuwuwuwu
·
2013-02-22 14:00
赛车游戏
算法笔记
英文原版教程:http://www.gotow.net/andrew/wordpress/?page_id=78通过对赛车模型添加rigidbody,boxcollider和WheelColliders;对赛道添加MeshCollider,使得游戏对象具备一般的赛车物理特性。赛车引擎输出功率设为固定值,每个档位对应不同的损耗。轮胎的转动力矩=引擎/档位有效比*用户输入的方向(1向前,-1向后。1到
cloud95
·
2013-02-16 11:00
0012
算法笔记
——【动态规划】最长公共子串问题
1、问题相关定义: (1)字符串:一个字符串S是将n个字符顺次排列形成的数组,n称为S的长度,表示为len(S)。S的第i字符表示为S[i]。 (2)子串:字符串S的子串S[i:j](i≤j)表示S串中从i到j这一段,也就是排列S[i],S[i+1],⋯,S[j]形成的字符串。 (3)后缀:后缀是指从某个位置i开始到整个串末尾结束的一个特殊子串。字符串S的从
liufeng_king
·
2013-01-23 11:00
动态规划
最长公共子串
后缀树
算法笔记
中文分词
算法笔记
转载:http://www.cnblogs.com/lvpei/archive/2010/08/04/1792409.html 中文分词基本算法主要分类基于词典的方法、基于统计的方法、基于规则的方法、(传说中还有基于理解的-神经网络-专家系统,按下不表)1、基于词典的方法(字符串匹配,机械分词方法)定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配,若在词典中找到某个字符串,
sungang_1120
·
2013-01-18 09:00
中文分词
中文分词
算法笔记
转载:http://www.cnblogs.com/lvpei/archive/2010/08/04/1792409.html 中文分词基本算法主要分类基于词典的方法、基于统计的方法、基于规则的方法、(传说中还有基于理解的-神经网络-专家系统,按下不表)1、基于词典的方法(字符串匹配,机械分词方法)定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配,若在词典中找到某个字符串,
sungang_1120
·
2013-01-18 09:00
中文分词
0011
算法笔记
——【动态规划】最长公共子序列问题(LCS)
问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= {x1,x2,…,xm},则另一序列Z={z1,z2,…,zk}是X的子序列是指存在一个严格递增的下标序列{i1,i2,…,ik},使得对于所有j=1,2,…,k有Xij=Zj。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7
liufeng_king
·
2013-01-14 18:00
动态规划
最长公共子串
lcs
算法笔记
0010
算法笔记
——【动态规划】矩阵连乘问题
问题描述:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。 问题解析:由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一
liufeng_king
·
2013-01-13 20:00
递归
动态规划
迭代
矩阵连乘
算法笔记
0009
算法笔记
——【动态规划】动态规划与斐波那契数列问题,最短路径问题
1、动态规划算法:动态规划:通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。基本思想:若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之
风仲达
·
2013-01-12 15:30
算法
算法笔记——《算法设计与分析》
0009
算法笔记
——【动态规划】动态规划与斐波那契数列问题,最短路径问题
1、动态规划算法: 动态规划:通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 基本思想:若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储
liufeng_king
·
2013-01-12 15:00
动态规划
最短路径
斐波那契数列
算法笔记
0008
算法笔记
——【分治法】循环赛事日程表
问题描述: 设有n=2^k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一天只能参赛一次; (3)循环赛在n-1天内结束。 请按此要求将比赛日程表设计成有n行和n-1列的一个表。在表中的第i行,第j列处填入第i个选手在第j天所遇到的选手。其中1≤i≤n,1≤j≤n-1。8个选手的比赛日
liufeng_king
·
2013-01-10 11:00
分治法
动态分配二维数组
循环赛事日程表
算法笔记
0007
算法笔记
——【分治法】最接近点对问题
问题场景:在应用中,常用诸如点、圆等简单的几何对象代表现实世界中的实体。在涉及这些几何对象的问题中,常需要了解其邻域中其他几何对象的信息。例如,在空中交通控制问题中,若将飞机作为空间中移动的一个点来看待,则具有最大碰撞危险的2架飞机,就是这个空间中最接近的一对点。这类问题是计算几何学中研究的基本问题之一。 问题描述:给定平面上n个点,找其中的一对点,使得在n个点的所有点对中,该点
liufeng_king
·
2013-01-09 22:00
分治法
最接近点对
算法笔记
0006
算法笔记
——【分治法】线性时间选择
线性时间选择问题:给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素,(这里给定的线性集是无序的)。 1、随机划分线性选择 线性时间选择随机划分法可以模仿随机化快速排序算法设计。基本思想是对输入数组进行递归划分,与快速排序不同的是,它只对划分出的子数组之一进行递归处理。 程序清单如下://2d9-1随机划分线性时间选择 #include"
liufeng_king
·
2013-01-08 17:00
分治法
中位数
线性时间选择
算法笔记
0005
算法笔记
——【分治法】快速排序
1、未优化的快速排序 快速排序的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 程序清单如下://2d8-1未优化的快速排序 #include"stdafx.h" #include usingnamespacestd;
liufeng_king
·
2013-01-07 21:00
快速排序
分治法
算法笔记
0004
算法笔记
——【分治法】合并排序
合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序,合并排序也叫归并排序。 1、递
liufeng_king
·
2013-01-07 20:00
分治法
合并排序
算法笔记
0003
算法笔记
——【分治法】分治法与二分搜索,棋盘覆盖问题
1、分治法分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。递归的解这些子问题,然后将各子问题的解合并得到原问题的解。 分治法所能解决的问题一般具有以下几个特征:1)该问题的规模缩小到一定的程度就可以容易地解决2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。3)利用该问题分解出的子问题的解可以合并为该问题的解;4)该问
liufeng_king
·
2013-01-07 19:00
算法
分治法
二分搜索
棋盘覆盖
算法笔记
上一页
50
51
52
53
54
55
56
57
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他