I am trying to use the undirected and weighted RageRank algorithm, and I found the UndirectedSparseGraph.java and and UndirectedSparseMultigraph.java classes at JUNG. They both seem to server the purpose without modifications required, but I do not know which one to choose. So my question is
1: What is the difference between them, which one should I use?
2: My experiment data contains several millions "pages", what is the memory/speed performance of JUNG on large data set?
Thanks,
USGraph allows only a single edge between two given vertices; USMultigraph allows multiple parallel edges between two vertices. Use the one that fits your requirements.
PageRank requires O(E) time per pass; you generally only need a few dozen iterations to get to convergence. Memory will be largely a function of which graph implementation you pick and what other associated data you're storing.