Java 重复检测算法的复杂性

Java 重复检测算法的复杂性,java,complexity-theory,Java,Complexity Theory,我不太熟悉复杂度符号,有人能帮我确定这个算法的复杂度吗 for (int i = 0; i < records.size(); i++){ for (int j = i; j < records.size(); j++){ if(j != i & isDuplicate(records.get(i), records.get(j))){ Pair p = new Pair(records.get(i).RecID,reco

我不太熟悉复杂度符号,有人能帮我确定这个算法的复杂度吗

for (int i = 0; i < records.size(); i++){

    for (int j = i; j < records.size(); j++){

        if(j != i & isDuplicate(records.get(i), records.get(j))){

            Pair p = new Pair(records.get(i).RecID,records.get(j).RecID);

            duplicates.add(p);

        }

    }

}

我有一个数据库表,想检查每个记录,所有记录只检查一次,以检查它们是否重复。

可以通过对第一个列表进行散列,然后查看第二个列表来检查散列集中的数据是否重复。两个循环都打开了。哈希查找是每项O1


您的代码是n**2,但这不是最有效的方法

非常感谢您的回答,问题是对于记录的每个字段,我都会进行levershtein距离比较,并根据有多少字段相似来决定是否重复。。我认为这不能通过散列来实现