public MergeGroupFight(MergeSortGroup left, MergeSortGroup right, MergeSorter mothership) { _sortedItems = new List <SignitureItem>(); LeftGroup = left; RightGroup = right; _mothership = mothership; }
internal void Advance() { if (CurrentFight.Complete) { MergeSortGroup newGroup = CurrentFight.ToGroup(); _groups.Add(newGroup); AdvanceCurrentFight(); } if (CurrentItemFight != null) { CurrentItemFight = CurrentFight.GetNextFight(); } }
private List <MergeGroupFight> CreateNewFights() { List <MergeGroupFight> ret = new List <MergeGroupFight>(); for (int i = 0; i < _groups.Count; i += 2) { MergeSortGroup leftGroup = _groups[i]; MergeSortGroup rightGroup = _groups[i + 1]; MergeGroupFight fight = new MergeGroupFight(leftGroup, rightGroup, this); ret.Add(fight); } //TODO: Handle odd numbers return(ret); }