编辑距离实现源码(Levenstein距离)
来源:互联网 发布:win10开机速度优化 编辑:程序博客网 时间:2024/06/14 01:31
采用通用的动态规划算法,时间复杂度O(m*n),空间复杂度O(n)。
代码清单
public float getDistance(String target, String other)
{
int n = target.length();
int m = other.length();
if (n == 0 || m == 0)
{
return n == m ? 1 : 0;
}
char[] sa = target.toCharArray();
int d[] = new int[n + 1];
int p[] = new int[n + 1];
int _d[];
for (int i = 0; i <= n; i++)
{
p[i] = i;
}
char t_j;// jth character of target
int cost = 0;// cost
for (int j = 1; j <= m; j++)
{
t_j = other.charAt(j - 1);
d[0] = j;
for (int i = 1; i <= n; i++)
{
cost = sa[i - 1] == t_j ? 0 : 1;
d[i] = Math.min(Math.min(d[i - 1] + 1, p[i] + 1), p[i - 1] + cost);
}
_d = p;
p = d;
d = _d;
}
return 1.0f - (float) p[n] / Math.max(m, n);
}
- 编辑距离实现源码(Levenstein距离)
- Levenshtein距离(编辑距离)
- 编辑距离算法实现
- 编辑距离--java实现
- 编辑距离(Levenshtein距离)详解(附python实现)
- 编辑距离C++实现(poj3356)
- 编辑距离 (dp)
- Levenshtein(编辑) 距离
- 编辑距离(dp)
- 编辑距离 (dp)
- 编辑距离(Edit Distance | Levenshtein距离)
- 计算字符串距离(编辑距离)
- 编辑距离-Levenshtein距离
- 编辑距离的Ruby实现
- 最小编辑距离python实现
- 编辑距离及代码实现
- 编辑距离算法的实现
- 文字编辑距离代码实现
- JAVA SSH 框架介绍
- sqlserver使用用户名登录
- freemarker 知识
- ubuntu网络设置
- 大数定律和MySQL 静态分片
- 编辑距离实现源码(Levenstein距离)
- UVA 11992 Fast Matrix Operations
- codeforces 315 B.Sereja and Array
- js常用函数
- Android 定义 Color 和 Drawable 的方法
- poj 1258 Agri-Net 水题三连发。。。又是kruscal
- 多线程编程中的条件变量和虚假唤醒(spurious wakeup)
- Oracle JDBC内存管理--Oracle白皮书2009年8月 .
- Stringfomat