Пример #1
0
        } // 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
Пример #2
0
        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];
                }
            }
        }
Пример #3
0
        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