Я хочу свести к минимуму стоимость сравнения двух списков, содержащих несколько слов. В приведенном ниже коде A
имеет 4 слова, тогда как B
имеет 2 слова и стоит O(n^2)
, что очень плохо. Хотя за 100 слов это может занять много времени. Могу ли я как-то свести к минимуму?Снизить стоимость сравнения двух списков
A= ["helry", "john" , "kat" , "david"]
d="Helry David"
B = d.lower().split()
for x in range(len(A)):
for i in range(len(B)):
if A[x] == B[i]:
print("Match = " + A[x])
else:
print("No")
Поскольку вы хотите напечатать что-либо для каждой возможной комбинации, конечно, невозможно бить «O (n^2)». –
@StefanPochmann Можем ли мы это сделать, изменив структуру данных? Например: Храните данные в некоторых других DS, кроме массивов. – Amar
@Amar No. Есть N^2 пары элементов, поэтому вы будете печатать N^2 вещи. –