Exemple #1
0
        static void Test(int [] verticesTab, double[] densityTab, int loops, bool printolution = false)
        {
            System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
            long   timeList, timeMatrix;
            int    start;
            Random rnd = new Random();

            foreach (int vertices in verticesTab)
            {
                timeList = 0; timeMatrix = 0;
                foreach (double density in densityTab)
                {
                    timeList   = 0;
                    timeMatrix = 0;
                    for (int i = 1; i <= loops; i++)
                    {
                        watch.Reset();
                        start = rnd.Next() % vertices;

                        ListGraph graphList = new ListGraph(vertices, density);
                        graphList.FillGraph();
                        watch.Start();
                        BellmanAlgorithm.FindTheShortestPat(graphList, start);
                        watch.Stop();
                        timeList += watch.ElapsedMilliseconds;
                        //  if(i!=10 && i % 10 == 0) timeList /= 11; //Co dziesieć uśrednia czas aby long nie przekroczył swego maksa
                        // if(i % 10 == 0) timeList /= 10; //po pierwszym przebiegu dzieli przez 10, za każdym następnym jest 10 elementów + uśredniony
                        watch.Reset();

                        MatrixGraph graphMatrix = new MatrixGraph(vertices, density);
                        graphMatrix.createMatrixFromList(graphList.ListVertices);
                        //graphMatrix.PrintGraph();
                        watch.Start();
                        BellmanAlgorithm.FindTheShortestPat(graphMatrix, start);
                        watch.Stop();
                        timeMatrix += watch.ElapsedMilliseconds;
                        //Console.WriteLine(timeMatrix/i);
                    }
                    Console.WriteLine("Lista: {0}, {1} czas: {2} ms", vertices, density, timeList / loops);
                    Console.WriteLine("Macierz: {0}, {1} czas: {2} ms", vertices, density, timeMatrix / loops);
                }
            }
        }