Итак, я читаю два файла и сохраняю каждую строку в двух разных списках соответственно. Теперь я должен проверить, присутствует ли строка в первом списке во втором списке.временная сложность этого подхода
При нормальной сравнении это потребуется O (N^2)
Но с использованием структуры данных графа на основе, как -
File1_visited [строка] = True
File2_visited [строка] = TRUE.
Я могу проверить, являются ли оба значения истинными, тогда строка присутствует в обоих файлах. Это делает его O (n).
Есть ли какой-либо другой подход, я могу уменьшить временную сложность и правильно ли я понял?
Пример сценария -
File1-
Текст1 Текст2 Text3 Text4
Файл2 -
Text5 Text7 Текст1 Текст2
Сравнение этих двух файлов.
Что-то важное в ваших аналитических промахах: «Какова временная сложность построения и доступа к структуре графа?» Простым, довольно эффективным способом было бы загрузить оба файла в хэш-наборы, а затем проверить пересечение. Это очень похоже на ваш подход, но он использует стандартные структуры, которые очень эффективны для создания и доступа. Насколько велики ваши файлы? – jpmc26
Предполагая, что максимально 1000 строк. Также мое понимание правильное в отношении двух подходов. Я думал о хеш-наборе, но не тот же, что и второй подход, так как, возможно, вам придется проходить через каждый файл один раз – Ryo
Если ваш набор данных составляет всего 1000 строк, почему вы заботитесь о O (n)? Big O Notation для действительно, действительно больших наборов чисел/вычислений. https://en.wikipedia.org/wiki/Big_O_notation –