private AHDocument[] getScores(AHDocumentComparer comparer) { if (!calculatedAH) //ensures that scores are calculated (only once) before returned { runAuthHubAlgorithm(); calculatedAH = true; } AHDocument[] results = new AHDocument[globalIds.Count]; for (int id = 0; id < results.Length; id++) { results[id] = new AHDocument(Convert.ToInt16(localIds[id]), authScores[id], hubScores[id]); } Array.Sort(results, comparer); return(results); }
public int Compare(object a, object b) { AHDocument docA = (AHDocument)a; AHDocument docB = (AHDocument)b; if (toCompare == AUTHORITIES) { if (docA.AuthorityScore > docB.AuthorityScore) { return(-1); } else if (docA.AuthorityScore < docB.AuthorityScore) { return(1); } else { return(0); } } else { if (docA.HubScore > docB.HubScore) { return(-1); } else if (docA.HubScore < docB.HubScore) { return(1); } else { return(0); } } }