Beispiel #1
0
        public void Test(SortingMethodDelegate SortingMethod, Series serie, string sSortingMethod)
        {
            int[] iTempArray = new int[iArray.Length];
            iArray.CopyTo(iTempArray, 0);

            SortingFunction SortingFunction = new SortingFunction();

            SortingFunction.iArray         = iTempArray;
            SortingFunction.SortingMethod  = SortingMethod;
            SortingFunction.sSortingMethod = sSortingMethod;

            Thread thread = new Thread(SortingFunction.Sorting);

            thread.Priority = ThreadPriority.Highest;
            thread.Start();

            Color randomColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));

            if (!thread.Join((int)numericUpDown4.Value))
            {
                thread.Abort();

                serie.Points.AddXY(sSortingMethod, (double)numericUpDown4.Value);
                serie.Points[serie.Points.Count - 1].Label = "more than " + numericUpDown4.Value.ToString();
                serie.Points[serie.Points.Count - 1].Color = randomColor;
                chart1.Legends["Legend"].CustomItems.Add(randomColor, sSortingMethod);

                Thread OutputThread2 = new Thread(SortingFunction.OutputToFile);
                OutputThread2.Priority = ThreadPriority.Normal;
                OutputThread2.Start();
                return;
            }
            else if (isCorrectlySorted(iTempArray))
            {
                throw new InvalidOperationException("Array isn't sorted!");
            }
            Thread OutputThread = new Thread(SortingFunction.OutputToFile);

            OutputThread.Priority = ThreadPriority.Normal;
            OutputThread.Start();

            serie.Points.AddXY(sSortingMethod, SortingFunction.Time);
            serie.Points[serie.Points.Count - 1].Label = SortingFunction.Time.ToString();
            serie.Points[serie.Points.Count - 1].Color = randomColor;
            chart1.Legends["Legend"].CustomItems.Add(randomColor, sSortingMethod);
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BubblySorting"/> class
 /// </summary>
 /// <param name="sortingMethod">Sorting method</param>
 public BubblySorting(SortingMethodDelegate sortingMethod)
 {
     this.SortingMethod = sortingMethod;
 }