Нужна оптимальная структура данных для сетевого графа - PullRequest
0 голосов
/ 17 января 2019

Я планирую реализовать некоторые алгоритмы, связанные с социальной сетью.

Алгоритмы включают измерение важности и обнаружение сообщества.

Например, Между, Близость, Оценка полномочий и PageRank. Дополнительно, некоторый алгоритм обнаружения сообщества.

Поскольку данные слишком велики, включают в себя более 100000 узлов и более 200000 ребер, с точки зрения проблем с памятью в c # я хочу применить эффективную структуру данных.

В настоящее время я использую массив Jagged int [] [] для хранения в качестве матрицы смежности, в которой 0 означает несвязанность, x! = 0 означает, что эти два узла соединены, вес ребра равен x.

Однако его производительность слишком плохая, слишком медленная.

Вопрос : Может кто-нибудь дать мне совет, какая структура данных будет лучше, чем массив Jagged int [] [] в C #?

1 Ответ

0 голосов
/ 17 января 2019

Я не уверен насчет c #, но мы можем сделать то же самое в C ++ или JAVA со структурой данных union-find. Это хорошо работает с оптимизацией Api реализации. Если можно легко найти то же самое в Google о union-find алгоритмической концепции для сетевых элементов. мы также можем реализовать со списком, деревом, а также с графиком с пользовательскими типами данных.

Спасибо, Ram

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...