
算法
soulDCY
这个作者很懒,什么都没留下…
展开
-
利用埃拉托斯特尼筛法求1-n之间的素数
定义: 素数又称质数,素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。方法: 采用埃拉托斯特尼筛法,每次消去2、3、4、5 、6 、、、、、、的倍数,直到没有可消的为止,剩下的数字则为素数; 每次考虑消去的第一个数为p*p, p<=sqrt(n); 时间复杂度为O(n*logn);空间复杂度O(n)...原创 2018-09-24 09:30:01 · 2213 阅读 · 0 评论 -
利用欧基里得算法求两数的最大公约数
定义: 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。代码:#include <stdio.h>int gcd(int m, int n) { return n==0? m : gcd(n, m % n); } int main() { int m, n; while(scanf("%d%d",&m,&...原创 2018-09-24 09:38:30 · 231 阅读 · 0 评论 -
递归求解n 的阶乘
阶乘函数可递归的定义为: 实现:#include <stdio.h>int factorial(int n) { return n == 0 ? 1 : n * factorial(n-1);}int main() { int n; while(scanf("%d",&n) == 1 && n) { int fac...原创 2018-09-24 10:21:24 · 339 阅读 · 0 评论 -
斐波拉契数列求解
定义无穷数列1,1,2,3,5,8,13,21,34,55,,,,,,,称为斐波拉契数列。将其递归定义如下图所示:将其非递归定义如下所示: 实现 采用递归方式代码如下:#include <stdio.h>int fibonacci(int n) { if(n <= 1) return 1; return fibonac...原创 2018-09-24 15:30:00 · 263 阅读 · 0 评论 -
AC自动机的实现
概述 Aho-Corasick automaton(AC自动机),该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一,该算法巧妙地将多模式串P建成一个确定有穷自动机(DFA),以待匹配字符串T作为该DFA的输入,使状态机进行状态转移(图2的0号节点为初态),当到达某些特定的状态时(终态:有模式串被匹配成功),完成模式匹配,能在 时间内完成多模式匹配(其中n为待匹配字符...原创 2019-04-20 15:37:13 · 188 阅读 · 0 评论