Скажем, у вас две строки длиной 100 000, содержащие нули и единицы. Вы можете вычислить их расстояние редактирования примерно в 10 ^ 10 операций.
Если каждая строка содержит только 100 единиц, а остальные - нули, я могу представить каждую строку, используя 100 целых чисел, где они указаны.
Есть ли более быстрый алгоритм для вычисления расстояния редактирования, используя это разреженное представление? Еще лучше будет алгоритм, который также использует пространство 100 ^ 2 вместо 10 ^ 10 пространства.
Чтобы дать что-то для тестирования, рассмотрите эти две строки по 10 штук каждый. Целые числа говорят, где они находятся в каждой строке.
[9959, 10271, 12571, 21699, 29220, 39972, 70600, 72783, 81449, 83262]
[9958, 10270, 12570, 29221, 34480, 37952, 39973, 83263, 88129, 94336]
В алгоритмических терминах, если у нас есть две разреженные двоичные строки длины n
каждая из которых представлена целыми числами k
, существует ли алгоритм расстояний редактирования времени O(k^2)
?