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 · 1371 阅读 · 0 评论 -
分治策略之合并排序问题
基本思想: 将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的合。 例如: 算法mergeSort的递归过程可以消去。 //合并排序(递归) #include using namespace std; template void Copy(Type a[],Type b[], int原创 2012-06-02 12:54:09 · 794 阅读 · 0 评论 -
贪心算法之多机调度问题
问题描述: 设有n个独立的作业{1,2,…, n },由m台相同的机器进行加工处理。作业i所需的处理时间为i t 。现约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略原创 2012-06-02 12:08:28 · 4886 阅读 · 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 · 1615 阅读 · 0 评论 -
分治策略之二分搜索技术
问题描述: 给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。 算法复杂度分析: 每执行一次算法的while循环,待搜索数组的大小减少一半。因此,在最坏情况下,while循环被执行了O(logn) 次。循环体内运算需要O(1) 时间,因此整个算法在最坏情况下的计算时间复杂性为O(logn) 。 //二分搜索技术(分治)原创 2012-06-02 12:30:26 · 1518 阅读 · 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 · 1037 阅读 · 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 · 649 阅读 · 0 评论 -
回溯之符号三角形问题
符号三角形问题 下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。 在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同。 •解向量:用n元组x[1:n]表示符号三角形的第一行。 •可行性约束函数:当前符号原创 2012-06-16 19:40:15 · 1077 阅读 · 0 评论 -
回溯之批处理作业调度问题
批处理作业调度问题 给定n个作业的集合{J1,J2,…,Jn}。每个作业必须先由机器1处理,然后由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。 批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。 这3个作业原创 2012-06-16 19:26:01 · 1872 阅读 · 0 评论 -
简单排序之冒泡排序
简单排序之冒泡排序 冒泡排序算法运行起来非常慢,单在概念上它是排序算法中最简单的,因此冒泡排序算法在 刚开始研究排序技术时是一个非常好的算法。 使用冒泡排序算法对棒球队队员排序 如果人近视得像计算机程序一样,以至于只能看到站在他面前的两个相邻的棒球队员。在这种困难的情况下,如何为队员们排序呢?假设有N个队员,并且根据所站的位置从左到右分别给每一个队员编号,从0到N-1。 冒泡排序例原创 2013-10-17 14:57:06 · 809 阅读 · 0 评论 -
简单排序之选择排序
选择排序 选择排序该进了冒泡排序,将必要的交换次数从O(N²)减少到O(N)。不幸的是比较次数仍保持为O(N²)。 用选择排序算法对棒球队员排序 对于棒球队排队的问题,在选择排序中,不在只比较两个相邻的球员。因此,需要记录下某一个指定队员的高度:可以使用记事本写下指定队员的身高,同时还需要准备一条紫红色的毛巾。 简述 进行选择排序就是把所有的队员扫描一趟,从中挑出(或者说选择,这正原创 2013-10-17 15:38:18 · 734 阅读 · 0 评论
分享