Ну, первый шаг к решению проблемы состоит в том, чтобы использовать базовую географию и классифицировать страны на continents.
Оттуда вы можете составить список расстояний в пределах данного континента и отсортировать по этим «расстояниям» или «весам».
Географическое расстояние (например, км или мили) между столичными городами должно быть «достаточно хорошим» приближением, чтобы начать, если вы хотите быть фантазией. Бьюсь об заклад, вы даже можете найти такой список с небольшим поиском в Интернете.
Оттуда вас есть «пост-офисные проблемы» (Кнут) или «nearest neighbor search» проблема оптимизации, и в этом случае я подозреваю, что вы можете [Перефразировано] просто пойти с линейного поиска в перегородках континентов , Если вам нужна более высокая производительность, то достаточно приблизительного алгоритмического подхода. (ответы не гарантируются best решение, но должно быть разумным большую часть времени)
Отметьте, что эта форма географии, основанная на «маршрутизации», слаба в нескольких исключительных случаях, таких как Куба, которая не получает Доступ в Интернет из его (наивного) очевидного географического соседа, США и некоторых стран «черной дыры» из-за политических отношений. Северная Корея и Тибет Я подозреваю, что подобные случаи.
Очень хороший подход, действительно, я это рассмотрю, но на данный момент эта реализация выглядит сложной. – Anonymous