} // End Sub MatrixSorterTest public static void SimpleMatrixSorterTest() { MatrixSorter sorter = new MatrixSorter(5); sorter.AddVertex(0); sorter.AddVertex(1); sorter.AddVertex(2); sorter.AddVertex(3); sorter.AddVertex(4); sorter.AddEdge(2, 3); // 3 hängt von 2 ab sorter.AddEdge(0, 1); // 1 hängt von 0 ab int[] res = sorter.Sort(); // res = res.Reverse().ToArray(); System.Console.WriteLine(res); } // End Sub SimpleMatrixSorterTest
private void button1_Click(object sender, EventArgs e) { //string path = @"C:\\Users\User\Desktop\matrix.txt"; string path = textBox1.Text; int n = 3; int m = 5; dataGridView1.RowCount = m; dataGridView1.ColumnCount = n; string[,] GridArray = MatrixSorter.GridArrange(MatrixSorter.ArraySwap(MatrixSorter.ReadArray(path, m), MatrixSorter.FindSums(MatrixSorter.ReadArray(path, m), n, m), MatrixSorter.SortSums(MatrixSorter.FindSums(MatrixSorter.ReadArray(path, m), n, m), n, m), n, m), n, m); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { dataGridView1[j, i].Value = GridArray[j, i]; } } }
public static void MatrixSorterTest() { System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); System.Collections.Generic.Dictionary <string, int> dict = new System.Collections.Generic.Dictionary <string, int>( System.StringComparer.InvariantCultureIgnoreCase ); System.Collections.Generic.List <TopologicObject> ls = new System.Collections.Generic.List <TopologicObject>(); ls.Add(new TopologicObject("bar")); ls.Add(new TopologicObject("foo")); ls.Add(new TopologicObject("foobar") .DependsOn("foo").DependsOn("bar") ); ls.Add(new TopologicObject("omg").DependsOn("foo")); for (int i = 0; i < ls.Count; ++i) { ls[i].Index = i; dict.Add(ls[i].Name, i); } // Next i for (int i = 0; i < ls.Count; ++i) { for (int j = 0; j < ls[i].Dependencies.Count; ++j) { int key = dict[ls[i].Dependencies[j].Name]; ls[i].Dependencies[j].Index = key; } // Next j } // Next i MatrixSorter sorter = new MatrixSorter(ls.Count); for (int i = 0; i < ls.Count; ++i) { sorter.AddVertex(i); } // Next i for (int i = 0; i < ls.Count; ++i) { for (int j = 0; j < ls[i].Dependencies.Count; ++j) { sorter.AddEdge(ls[i].Dependencies[j].Index, i); // i depends on Dependency[j] } // Next j } // Next i int[] res = sorter.Sort(); string[] sres = new string[res.Length]; for (int i = 0; i < sres.Length; ++i) { sres[i] = ls[res[i]].Name; } // Next i sw.Stop(); long ems = sw.ElapsedMilliseconds; System.Console.WriteLine($"Duration Matrix:\t{ems}"); // res = res.Reverse().ToArray(); // System.Console.WriteLine(sres); } // End Sub MatrixSorterTest