Algorithm
Hy_Fighting
这个作者很懒,什么都没留下…
展开
-
分治策略之棋盘覆盖问题(ChessBoard)
在一个2k×2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。当k>0时,将2k×2k棋盘分割为4个2k-1×2k-1子棋盘(a)所示。特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中原创 2012-04-21 09:12:24 · 1232 阅读 · 0 评论 -
简单排序之冒泡排序
简单排序之冒泡排序冒泡排序算法运行起来非常慢,单在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。 使用冒泡排序算法对棒球队队员排序如果人近视得像计算机程序一样,以至于只能看到站在他面前的两个相邻的棒球队员。在这种困难的情况下,如何为队员们排序呢?假设有N个队员,并且根据所站的位置从左到右分别给每一个队员编号,从0到N-1。冒泡排序例原创 2013-10-17 14:57:06 · 679 阅读 · 0 评论 -
回溯之批处理作业调度问题
批处理作业调度问题给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。这3个作业原创 2012-06-16 19:26:01 · 1644 阅读 · 0 评论 -
回溯之符号三角形问题
符号三角形问题下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同。•解向量:用n元组x[1:n]表示符号三角形的第一行。•可行性约束函数:当前符号原创 2012-06-16 19:40:15 · 939 阅读 · 0 评论 -
回溯之n后问题
n后问题 在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。•解向量:(x1,x2,… , xn)•显约束:xi=1,2,… ,n•隐约束: 1)不同列:xi¹xj 2)原创 2012-06-16 19:45:00 · 526 阅读 · 0 评论 -
分治策略之全排列问题
问题描述:设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中元素的全排列记为perm(X)。(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下:当n=1时,perm(R)=(r),其中r是集合R中唯一的元素;当n>1时原创 2012-06-02 12:42:30 · 953 阅读 · 0 评论 -
分治策略之二分搜索技术
问题描述:给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。算法复杂度分析:每执行一次算法的while循环,待搜索数组的大小减少一半。因此,在最坏情况下,while循环被执行了O(logn)次。循环体内运算需要O(1)时间,因此整个算法在最坏情况下的计算时间复杂性为O(logn)。//二分搜索技术(分治)原创 2012-06-02 12:30:26 · 1302 阅读 · 0 评论 -
贪心算法之活动安排问题
问题描述:设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si fi 。如果选择了活动i,则它在半开时间区间[si,fi)内占用资源。若区间[si,fi)与区间[sj,fj)不相交,则称活动i与活动j是相容的。也就是说,当si≥f原创 2012-06-02 12:23:22 · 1395 阅读 · 0 评论 -
贪心算法之多机调度问题
问题描述:设有n个独立的作业{1,2,…, n },由m台相同的机器进行加工处理。作业i所需的处理时间为i t 。现约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略原创 2012-06-02 12:08:28 · 4504 阅读 · 0 评论 -
分治策略之合并排序问题
基本思想:将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的合。例如:算法mergeSort的递归过程可以消去。//合并排序(递归)#include using namespace std;template void Copy(Type a[],Type b[], int原创 2012-06-02 12:54:09 · 688 阅读 · 0 评论 -
简单排序之选择排序
选择排序选择排序该进了冒泡排序,将必要的交换次数从O(N²)减少到O(N)。不幸的是比较次数仍保持为O(N²)。 用选择排序算法对棒球队员排序对于棒球队排队的问题,在选择排序中,不在只比较两个相邻的球员。因此,需要记录下某一个指定队员的高度:可以使用记事本写下指定队员的身高,同时还需要准备一条紫红色的毛巾。简述进行选择排序就是把所有的队员扫描一趟,从中挑出(或者说选择,这正原创 2013-10-17 15:38:18 · 616 阅读 · 0 评论