博主今年刚上大三,正好开算法这门课。由于博主本人比较喜欢算法但又比较懒,啃不动算法导论,所以决定拿这本书下手。这本书是王晓东的第四版《计算机算法设计与分析》。初步打算将每章后面的算法题都用代码实现。有些题跟某个ACM题目很像,我会把该ACM题的链接贴上。有的题没OJ交所以可能是错的。如有发现,还望指...
分类:
其他好文 时间:
2014-08-31 17:06:41
阅读次数:
271
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。RSA...
分类:
其他好文 时间:
2014-08-27 12:51:17
阅读次数:
155
Non-blocking algorithm
In computer science, a non-blocking algorithm ensures that threads competing
for a shared resource do not have their execution indefinitely
postponed by mutual ex...
分类:
其他好文 时间:
2014-08-26 09:52:09
阅读次数:
270
C++实现二分检索算法#include #include #includeusing namespace std;void enter(int arrayin[], int n); //输入函数void asort(int arrayin[], int n); //排序函数int Search(in...
分类:
编程语言 时间:
2014-08-26 00:24:05
阅读次数:
264
在上一篇文章Levenshtein distance算法实现中,笔者已经讲解了一般最小编辑距离的算法。该算法采用动态规划,时间复杂度是O(m*n),m,n分别为两个字符串的长度,而空间复杂度也是O(m*n),如果使用int作为矩阵元素的类型,则矩阵的占用空间大小为sizeof(int)*m*n,假如两个字符串的长度均为10000个字符,则矩阵大小为400MB,相当可观。参考一个快速、高效的Leve...
分类:
其他好文 时间:
2014-08-20 12:38:02
阅读次数:
187
Levenshein distance,中文名为最小编辑距离,其目的是找出两个字符串之间需要改动多少个字符后变成一致。该算法使用了动态规划的算法策略,该问题具备最优子结构,最小编辑距离包含子最小编辑距离,有下列的公式。
其中d[i-1,j]+1代表字符串s2插入一个字母,d[i,j-1]+1代表字符串s1删除一个字母,然后当xi=yj时,不需要代价,所以和上一步d[i-1,j-1]代价相...
分类:
其他好文 时间:
2014-08-19 22:33:05
阅读次数:
323
爬山算法爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如下图所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方...
分类:
其他好文 时间:
2014-08-19 22:23:05
阅读次数:
442
一、Simhash简介 SimHash是用来网页去重最常用的hash方法,速度很快。Google采用这种算法来解决万亿级别的网页去重任务。 SimHash算法的主要思想是降维。将高维的特征向量映射成一个低维的特征向量,通过两个向量...
分类:
其他好文 时间:
2014-08-18 12:43:55
阅读次数:
249