Exemplo n.º 1
0
        public async void AlgorithmHandler(object parmameter)
        {
            string algorithm = parmameter.ToString();

            if (this.AlgorithmStatus.TaskStatus == TaskStatus.Running && this.task != null && algorithm == this.AlgorithmStatistics.ExecutingAlgorithm)
            {
                this.AlgorithmStatus.TaskStatus = TaskStatus.WaitingToRun;
                this.Algorithms.Find(a => a.Title == algorithm).AlgorithmStatus = this.AlgorithmStatus.TaskStatus;
                this.Timer.PauseTimer();
                return;
            }

            if (this.AlgorithmStatus.TaskStatus == TaskStatus.WaitingToRun && this.task != null && algorithm == this.AlgorithmStatistics.ExecutingAlgorithm)
            {
                this.AlgorithmStatus.TaskStatus = TaskStatus.Running;
                this.Algorithms.Find(a => a.Title == algorithm).AlgorithmStatus = this.AlgorithmStatus.TaskStatus;
                this.Timer.ResumeTimer();
                return;
            }

            await this.TaskHandler();

            this.CloneUnsortedDatasetIfSorted();
            this.SortingInfo.Sorted = false;

            BaseSortingAlgorithm sortingAlgorithm = this.Algorithms.Find(a => a.Title == algorithm);

            sortingAlgorithm.Dataset = (ChartValues <int>) this.DataSet[0].Values;
            this.SetAlgorithmStatistics(sortingAlgorithm);

            await this.AlgorithmRunner(sortingAlgorithm.InitialiseSort);

            this.SortingInfo.Sorted = true;
            this.AlgorithmStatistics.ExecutingAlgorithm = string.Empty;
        }
Exemplo n.º 2
0
 public void SetAlgorithmStatistics(BaseSortingAlgorithm sortingAlgorithm)
 {
     this.AlgorithmStatistics.BestCase           = sortingAlgorithm.BestCase;
     this.AlgorithmStatistics.AverageCase        = sortingAlgorithm.AverageCase;
     this.AlgorithmStatistics.WorstCase          = sortingAlgorithm.WorstCase;
     this.AlgorithmStatistics.ExecutingAlgorithm = sortingAlgorithm.Title;
 }