概述
public class Suanfa {
public static void main(String[] args) {
String Str_1="abcdefghijklmuvwxyz";
String Str_2="ijkabclmdefghpq";
//length
int Length1=Str_1.length();
int Length2=Str_2.length();
int Distance=0;
if (Length1==0) {
Distance=Length2;
}
if(Length2==0)
{
Distance=Length1;
}
if(Length1!=0&&Length2!=0){
int[][] Distance_Matrix=new int[Length1+1][Length2+1];
//编号
int Bianhao=0;
for (int i = 0; i <= Length1; i++) {
Distance_Matrix[i][0]=Bianhao;
Bianhao++;
}
Bianhao=0;
for (int i = 0; i <=Length2; i++) {
Distance_Matrix[0][i]=Bianhao;
Bianhao++;
}
char[] Str_1_CharArray=Str_1.toCharArray();
char[] Str_2_CharArray=Str_2.toCharArray();
for (int i = 1; i <= Length1; i++) {
for(int j=1;j<=Length2;j++){
if(Str_1_CharArray[i-1]==Str_2_CharArray[j-1]){
Distance=0;
}
else{
Distance=1;
}
int Temp1=Distance_Matrix[i-1][j]+1;
int Temp2=Distance_Matrix[i][j-1]+1;
int Temp3=Distance_Matrix[i-1][j-1]+Distance;
Distance_Matrix[i][j]=Temp1>Temp2?Temp2:Temp1;
Distance_Matrix[i][j]=Distance_Matrix[i][j]>Temp3?Temp3:Distance_Matrix[i][j];
}
}
Distance=Distance_Matrix[Length1][Length2];
}
double Aerfa=1-1.0*Distance/(Length1>Length2?Length1:Length2);
System.out.println(Aerfa);
}
}
最后
以上就是悦耳奇迹为你收集整理的相似度的算法(编辑距离法)(Java实现代码)的全部内容,希望文章能够帮你解决相似度的算法(编辑距离法)(Java实现代码)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复