Если ваш набор данных точно такой же, как вы опубликовали, вы можете создать словарь из {key:value}
, где key
будет именами, а value
- возрастами.Вот так -
dict = {
'foo1': 22,
'foo2': 23
}
Тогда, если вы можете использовать поисковый запрос напрямую, чтобы получить доступ к значению, соответствующему этому имени.например -
age = dict[searchTermName]
Таким образом, вам потребуется только O (n) время для подготовки набора данных, но для каждого поиска вам понадобится O (1) время.
Теперь, есливаш набор данных более сложен, чем этот - вы можете использовать префикс trie .Это будет один из самых эффективных способов.В каждом поиске сложность времени наихудшего случая будет O (search_term_length).Хотя это также имеет стоимость инициализации.Но это только одна временная стоимость (O(n * key_length)
).