Exemple #1
0
        private void Task1()
        {
            Console.WriteLine("Insert number of elements");
            int n = InputParameter();

            Console.WriteLine("Insert maximum value of elements");
            int max = InputParameter();

            Element[] elements = GenerateElements(n, max);

            SortingAlgorithm s = InputAlgorithm();

            if (s.IsInPlace())
            {
                Visualization g = new Visualization(elements);
                g.StartWithNewThread();
            }
            s.Sort(elements);
            Console.WriteLine(s.GetName() + " has finished");
            if (s.Stable)
            {
                Console.WriteLine(s.GetName() + " is stable");
            }
            else
            {
                Console.WriteLine(s.GetName() + " is not stable");
            }
            Console.WriteLine("Time: " + s.GetElapsedTime());
        }
Exemple #2
0
        private void Task2()
        {
            Console.WriteLine("Insert the first number of elements");
            int   nm    = InputParameter();
            Graph g     = new Graph("Number of elements", "Time[s]");
            var   types = System.Reflection.Assembly.GetExecutingAssembly().GetTypes().Where(x => x.BaseType == typeof(SortingAlgorithm));
            Table table = new Table(3, 21);

            table.StartWithNewThread();
            foreach (var x in types)
            {
                SortingAlgorithm s   = (SortingAlgorithm)Activator.CreateInstance(x);
                Table.Tab        tab = new Table.Tab(s.GetName());
                table.AddTab(tab);
                tab.AddLine(new string[] { "Number of elements", "Time (in seconds)", "Number of iterations" });
                Graph.Data pointData = new Graph.Data(s.GetName());
                for (int i = 0; i < 20; i++)
                {
                    int       n        = nm * (i + 1);
                    Element[] elements = GenerateElements(n, n);
                    s.Sort(elements);
                    pointData.AddPoint(n, ((float)s.GetElapsedTime() / 1000));
                    string[] line = { n.ToString(), ((float)s.GetElapsedTime() / 1000).ToString("0.00"), s.GetIterationCount().ToString() };
                    tab.AddLine(line);
                }
                g.AddData(pointData);
            }
            g.StartWithNewThread();
        }
Exemple #3
0
        private void Task1()
        {
            Console.WriteLine("Insert number of elements");
            int n = InputParameter();

            Console.WriteLine("Insert maximum value of elements");
            int max = InputParameter();

            Element[] elements = GenerateElements(n, max);

            SortingAlgorithm s = InputAlgorithm();
            Visualization    g = new Visualization(elements);

            g.StartWithNewThread();
            s.Sort(elements);
            Console.WriteLine("Time: " + s.GetElapsedTime());
        }
Exemple #4
0
 /// <summary>
 /// Execute a sorting algorithm depends on concrete sorting strategy
 /// </summary>
 public void Sort()
 {
     _sortingAlgorithm.Sort();
 }