По заданному плоскому файлу с диапазонами и сопоставлениями IP-адресов найдите город по IP-адресу.

Вот вопрос:

Данный простой текстовый файл, содержащий диапазон IP-адресов, которые отображают к месту (напр. 192.168.0.0-192.168.0.255 = Бостон, Массачусетс), придумайте алгоритм, который найдет город для определенного IP-адреса, если существует сопоставление.

Моя единственная идея состоит в том, чтобы разобрать файл и преобразовать диапазоны IP-адресов в просто целые числа (умножая на 10/100, если в нем отсутствуют цифры) и поместить их в список, а также поместить меньшие диапазоны в хэш в качестве ключ с местоположением в качестве значения. Отсортируйте список и выполните слегка модифицированный бинарный поиск. Если индекс нечетный, -1 и смотреть в хеше. Если это даже, просто посмотрите на хэш.

Есть ошибки в моих планах или лучшие решения?

10
задан templatetypedef 6 March 2012 в 04:16
поделиться