//private bool showDisplay = false; /// <summary> /// Constructor /// </summary> /// <param name="input"></param> /// <param name="showDisplay"></param> public AlgorithmHG(string Input, bool ShowOutput) { this.Input = Input; this.ShowOutput = ShowOutput; this.valuesList = new ValuesList(this.Input); this.permutations = new List<string>(); }
private string RunPermutation() { endCnt = Utilities.CalculateFactorial(valuesList.Values.Count); string result = string.Empty; while (valuesList.DisplayCtr < endCnt) { valuesList.Display(this.ShowOutput); this.permutations.Add(valuesList.GetLastDisplay()); valuesList.SetNextOperation(); valuesList = PerformListOperation(valuesList); } result = valuesList.GetLastDisplay(); return result; }
private ValuesList PerformListOperation(ValuesList valuesList) { if (!valuesList.ProcessingDone && valuesList.Operation == 1) { valuesList.Values = HandleSimpleSwap(valuesList.Values); } else if (!valuesList.ProcessingDone) { valuesList.Values = this.IncrementPosition(valuesList.Values, valuesList.Operation + 1); } return valuesList; }