private void Task3() { SortingAlgorithm[] algs = { new QuickSort(), new QuickSort2(), new InsertionSort() }; Console.WriteLine("Insert the first number of elements (pref 400-800)"); int nm = InputParameter(); Table table = new Table(3, 21); table.StartWithNewThread(); for (int k = 0; k < 2; k++) { string distr = k == 0 ? "(Random)" : "(Ascending)"; Graph g = new Graph("Number of elements", "Time[s]"); foreach (SortingAlgorithm s in algs) { Table.Tab tab = new Table.Tab(s.GetName() + " " + distr); table.AddTab(tab); tab.AddLine(new string[] { "Number of elements", "Time (in seconds)", "Number of iterations" }); Graph.Data pointData = new Graph.Data(s.GetName() + " " + distr); for (int i = 0; i < 20; i++) { int n = nm * (i + 1); Element[] elements = GenerateElements(n, n, k == 0 ? Distribution.Random : Distribution.Ascending); 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(); } }
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(); }
private void T2(SortingAlgorithm[] ss, Table table, int nm, Graph g) { foreach (SortingAlgorithm s in ss) { 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); } }