算法
文章平均质量分 63
倚马古道
这个作者很懒,什么都没留下…
展开
-
KMP算法
KMP算法 在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa转载 2014-08-30 16:09:11 · 221 阅读 · 0 评论 -
二分查找(Binary Search)
算法:又称折半查找,它是一种效率较高的查找方法,当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为原创 2014-07-18 09:19:56 · 378 阅读 · 0 评论 -
图像有用区域
描述“ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色。 图1 图2 已知黑线各处不会出现交叉(转载 2014-07-18 18:55:57 · 382 阅读 · 0 评论 -
三分搜索
二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但是当函数是凸性函数或者凹性函数时,二分法就不再适用,这时我们便用到的三分法。如上图所示,类似二分的定义,mid = (left + right)/ 2,midmid = (mid + right)/ 2,如果mid靠近极值点,则 right = midmid,否则 left = mid。转载 2014-07-21 10:06:23 · 320 阅读 · 0 评论 -
C语言快速排序
对int型数组排序int num[100];int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int main(){ ...... qsort(num,100,sizeof(num[0]),cmp); return 0;}对char型数组排序char st[1原创 2014-07-30 15:34:23 · 457 阅读 · 0 评论 -
poj3624 Charm Bracelet
Language:DefaultCharm BraceletTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 22920 Accepted: 10315DescriptionBessie has gone to the mall's jewelr原创 2014-07-30 15:42:34 · 370 阅读 · 0 评论 -
分治算法
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时转载 2014-07-30 16:53:42 · 247 阅读 · 0 评论 -
素数的判断
正如大家都知道的那样,一个数 n 如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方,那么我们可以用这个性质用最直观的方法来求出小于等于n的所有的素数。 num = 0; for(i=2; i { for(j=2; j if( j%i==0 ) break; if( j>sqrt(i) ) prime[num++]原创 2014-08-11 10:30:20 · 392 阅读 · 0 评论 -
hdu 1241 Oil Deposits
[BestCoder Round #5]冠军的奖励是小米3手机一部 恭喜福州大学杨楠获得[BestCoder Round #4]冠军(iPad Mini一部) 《BestCoder用户手册》下载Oil DepositsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja原创 2014-08-13 11:17:34 · 266 阅读 · 0 评论 -
最大公约数和最小公倍数
两个自然数的积等于这两个数的最大公约数与最小公倍数的积。求最大公约数的方法:1、辗转相除法:辗转相除法又称为欧几里德算法其计算原理依赖于下面的定理:定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0)当b==0时,gcd(a,b)中的a即为最大公约数;证明:a可以表示成a = kb + r,则r =转载 2014-08-14 10:13:02 · 475 阅读 · 0 评论 -
快速排序
#include #include #include #include #include#includeusing namespace std;#include#define N 1000+10int a[N],n,m;void ksort(int left ,int right ){ if(left+1>right){ if原创 2014-07-15 09:32:22 · 343 阅读 · 0 评论