- 博客(4)
- 收藏
- 关注
原创 牛顿迭代法
牛顿迭代法(英文名Newton’s Iteration)是用来求函数的根的高效算法。递推公式为 图1大概思想: 如图所示,取一个点(xn,f(xn)),过该点作切线交x轴于(xn+1,0)很容易得到稍微变形,就可以得到最开始给出的公式。这大概是一个无限逼
2014-12-29 20:55:54 980
原创 MD5的实现
闲着没事干,索性实现一下MD5具体的东西,说白了,就是把原始数据+补充数据共分割成N个64位的小段,每个小段又分成16个小节,然后每个小段参与一次四轮运算,用ABCD这四个数关联起他们,保证数据有丝毫变动,得到的MD5码,会完全变动。F=(x&y)|((~x)&z)G=(x&z)|(y&(~z))H=x^y^zI=y^(x|(~z))
2014-12-27 14:25:32 519
原创 KMP算法
求一个字符串T的子串S的位置一般算法是int len=T.len-S.len,j,i;for(i=0;i<len;i++){ for(j=0;j<S.len;j++) if(T[i+j]!=S[j]) break; if(j==S.len) break;}这种算法写起来很简单,复杂度最大为O(T.len*S.len)例如T[]="aaaa...
2014-12-25 17:15:44 414
转载 c语言位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位
2014-12-25 16:48:44 335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人