算法
文章平均质量分 66
jixingzhong
Impossible is nothing! 爱好:看书,编程,轮滑,旅游
展开
-
模式匹配的KMP算法详解
这种由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进的模式匹配算法简称为KMP算法。大概学过信息学的都知道,是个比较难理解的算法,今天特把它搞个彻彻底底明明白白。注意到这是一个改进的算法,所以有必要把原来的模式匹配算法拿出来,其实理解的关键就在这里,一般的匹配算法:int Index(String S,String T,int pos)//参考《数据结构》中的程转载 2006-11-14 10:44:00 · 4969 阅读 · 1 评论 -
另类穷举计算24
/******************************************************************************计算 A 、B、 C、 D四个数据+-*/以及括号运算得到24,可穷举获得各种可行的答案,数据类型使用float。关键在于对 4 数据运算分类,结合数组、函数指针等巧妙使用循环完成穷举:原创 2007-10-29 08:22:00 · 1341 阅读 · 1 评论 -
用递归改写循环,得到组合
/*********************************************************************问题:提供若干集合 A、B、C ...,每个集合取其一个元素,形成X个组合。1. 循环方式, 由几个for 遍历即可2. 改写为递归方式,需要做一些精细的控制,细节请看代码所示。**********************************原创 2007-10-28 20:43:00 · 1387 阅读 · 0 评论 -
日历,求第二天的日期
/*根据输入的日期,计算第二天的日期基本内容都很简单,就不需要多说了。呵呵,很早的一个练习的例子,放这里予以纪念 ^_^*/#include #include int main(){ int y,m,d; int f, fwrong=0; printf("y,m,d="); scanf("%d%d%d",&y,&m,&d); /*输入格式: 1996 2 28, 空格分割数据*/ f=原创 2007-01-17 22:09:00 · 1666 阅读 · 0 评论 -
牛顿迭代法
牛顿迭代法 用牛顿迭代法求f(x)=0在x0附近的一个实根的方法是:(1) 选一个接近于x的真实根的近似根x1;(2) 通过x1求出f(x1)。在几何上就是作x=x1,交f(x)于f(x1);(3) 过f(x1)作f(x)的切线,交x轴于x2。可以用公式求出x2。由于f(x1)=f(x1)/(x2-x1),故x2=x1-f(x1)/f(x1)(4) 通过x2求出f(x2);(5) 再过f(原创 2007-01-17 21:55:00 · 9002 阅读 · 2 评论 -
矩阵求逆 转置 行列式
/*矩阵基本运算: 求逆、转置、计算行列式*/#include #include double * MatrixOpp(double *A,int m,int n); /*矩阵求逆*/double * MatrixInver(double *A,int m,int n); /*矩阵转置*/double Surplus(double A[],int m,int n); /*求原创 2007-01-17 22:12:00 · 7341 阅读 · 5 评论 -
二分法
二分法任取两点x1和x2,判断(x1,x2)区间内有无一个实根。如果f(x1)和f(x2)符号相反,说明(x1,x2)之间有一个实根。取(x1,x2)的中点x,检查f(x)与f(x1)是否同符号,如果不同号,说明实根在(x,x1)区间,这样就已经将寻找根的范围减少了一半了。然后用同样的办法再进一步缩小范围。再找x1与x2(x2=x)的中点“x”,并且再舍弃其一半区间。如果f(x)与f(x1)同原创 2007-01-17 21:57:00 · 1552 阅读 · 0 评论 -
银行家算法
/* 银行家算法,操作系统概念(OS concepts Six Edition) 作者:ctu_85*/#include "malloc.h"#include "stdio.h"#define alloclen sizeof(struct allocation)#define maxlen sizeof(struct max)#define avalen sizeof(struct availab转载 2006-12-28 10:06:00 · 1841 阅读 · 0 评论 -
模式匹配之Boyer-Moore算法
BM 算法是一个较优的模式匹配算法。一般,如果不考虑模式串的长度,一个具有时间复杂度O(n)的算法应该是最优的了,但是事实不是如此。BM算法可以实现更高效率的模式匹配。分析和实验说明,BM匹配算法对于那些字符集比较大,而模式串中出现的字符比较少的时候,工作效率最快。而且,考虑KMP匹配方式的优化,可以结合KMP匹配和BM匹配,进一步提高效率。算法的关键和 KMP 类似,也是构造一个辅助数组,原创 2006-12-28 10:03:00 · 2759 阅读 · 4 评论 -
10万进制的大数乘方
/**//*************************************************************************** 程序为计算 x^n, 示例中,x不大于 10000Copyright (C) 2007 jixingzhong. The Institue of Computer System********原创 2007-10-29 06:41:00 · 2443 阅读 · 1 评论