У меня есть задание, которое требует чтения огромного файла случайных входных данных, например:
Adana
Izmir Adnan Menderes Apt
Addis Ababa
Aden
ADIYAMAN
ALDAN
Amman Marka Intl Airport
Adak Island
Adelaide Airport
ANURADHAPURA
Kodiak Apt
DALLAS/ADDISON
Ardabil
ANDREWS AFB
etc..
Если я укажу поисковый термин, программа должна найти строки, в которых встречается подстрока.Например, если поисковый термин "урадха", программа должна показывать ANURADHAPURA
.Если поисковый термин «аэропорт», программа должна показывать Amman Marka Intl Airport, Adelaide Airport
цитата из спецификации задания: «Вы должны программировать это приложение, принимая во внимание эффективность, как будто большие объемы данных и обработкиучаствует ... "
Я мог бы легко достичь этой функциональности, используя цикл, но производительность была бы O (n).Я думал об использовании trie , но, похоже, он работает, только если подстрока начинается с индекса 0.
Мне было интересно, какие существуют решения, которые дают производительность лучше, чем O (n)