static SimilarTagsCalculator.TagsSimilarityInfo[] ArraySort(SimilarTagsCalculator.TagsSimilarityInfo[] array) { SimilarTagsCalculator.TagsSimilarityInfo[] result = new SimilarTagsCalculator.TagsSimilarityInfo[array.Length]; Array.Copy(array, result, array.Length); Array.Sort(result); return(result); }
static SimilarTagsCalculator.TagsSimilarityInfo[] CountSort(SimilarTagsCalculator.TagsSimilarityInfo[] array) { List <SimilarTagsCalculator.TagsSimilarityInfo>[] list = new List <SimilarTagsCalculator.TagsSimilarityInfo> [TagsGroup.TagsGroupLength + 1]; foreach (var tagsSimilarityInfo in array) { List <SimilarTagsCalculator.TagsSimilarityInfo> l = list[tagsSimilarityInfo.Similarity]; if (l == null) { l = new List <SimilarTagsCalculator.TagsSimilarityInfo>(); list[tagsSimilarityInfo.Similarity] = l; } l.Add(tagsSimilarityInfo); } SimilarTagsCalculator.TagsSimilarityInfo[] result = new SimilarTagsCalculator.TagsSimilarityInfo[array.Length]; for (int i = TagsGroup.TagsGroupLength, j = 0; i >= 0; i--) { if (list[i] == null) { continue; } foreach (var info in list[i]) { result[j++] = info; } } return(result); }
SimilarTagsCalculator.TagsSimilarityInfo[] CalcTagsSimilarityInfo(TagsGroup[] tagsGroups) { SimilarTagsCalculator.TagsSimilarityInfo[] result = new SimilarTagsCalculator.TagsSimilarityInfo[tagsGroups.Length]; TagsGroup tagsGroup = new TagsGroup(Program.CreateAllTagsTrue()); for (int i = 0; i < tagsGroups.Length; i++) { result[i] = new SimilarTagsCalculator.TagsSimilarityInfo(i, TagsGroup.MeasureSimilarity(tagsGroup, tagsGroups[i])); } return(result); }