我对复杂符号不太熟悉,有人可以帮我识别这种算法的复杂性吗?
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);
}
}
}
我有一个数据库表,想要检查每条记录,只记录一次所有记录,以检查它们是否重复。
答案 0 :(得分:0)
可以在O(n)中通过散列第一个列表并查看第二个列表以检查hashset中的数据来完成。两个循环都是o(n)。散列查找是每个项目的O(1)。
您的代码是n ** 2,但这不是最有效的方法