数据结构与算法
rmaly
专治不服
展开
-
KMP算法
KMP算法是模式匹配的一种改进算法,是D.E.Knuth与V.R.Pratt和J.H.Morris同时发现的。 一般情况下,当主串i字符与匹配串j字符不等时,j会退回到0,i退回到原来位置的下一位,这样效率低。 KMP算法的实现思路 从主串的第一个字符(或者给定的第pos个字符)开始和子串的第一个字符开始比较,若相等,则继续比较后面的字符。若不相等,则将模式串右移至合适的位置转载 2012-08-21 11:01:39 · 402 阅读 · 0 评论 -
等概率随机函数的实现
题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数newRand(), 使其以1/n的等概率产生1~n之间的任意一个数。解决思路:可以通过已知随机函数rand()产生等概率产生0和1的新随机函数Rand(),然后调用k(k为整数n的二进制表示的位数)次Rand()函数,得到一个长度为k的0和1序列,以此序列所形成的整数即为1--n之间的数字。注转载 2012-08-25 23:24:41 · 667 阅读 · 0 评论 -
统计一个整数 位为1的个数
while(n) { n &= (n - 1);//把最右边的一个1减为0,再&就去掉一个1了 ncount++; }转载 2012-08-21 11:17:35 · 647 阅读 · 0 评论