예제 #1
0
        static void Bin_Pes_Instr()
        {
            //Opis
            Console.WriteLine("Wyszukiwanie_Binarne_Pesymistyczne_Instrumentacja");

            //Wyświetlenie kolumn
            Console.WriteLine("Matrix_Size\tCritical_Points\tLoops_Number");

            //Deklaracja wyszukiwania binarnego
            Binarne binarne = new Binarne();

            //Testowo licznik pętli
            int _iCouter = 1;

            //Pętla po punktach pomiarowych
            for (int i = 2; i <= 280; i += 4)            //70 punktów pomiarowych
            {
                //Tworzenie tablic o podanej wielkości
                int[] _oMatrix = CreateMatrix(i * 1000000, int.MaxValue - 1);

                //Sortowanie tablicy od najmniejszych wartości do najwiekszych
                Array.Sort(_oMatrix);

                //Zmienna przechowująca ilosć punktów krytycznych
                long _lCriticalPoints = 0;

                //Szukanie elementu o wartości uint.max
                binarne.BinSearchInst(_oMatrix, int.MaxValue, out _lCriticalPoints);

                //Wyświetlenie statystyk
                Console.WriteLine($"{i * 1000000}\t\t{_lCriticalPoints}\t\t{_iCouter++}");                //Testowo licznik pętli - Couter
            }
        }
예제 #2
0
        static void Bin_Ave_Instr()
        {
            //Opis
            Console.WriteLine("Wyszukiwanie_Binarne_Średnie_Instrumentacja");

            //Wyświetlenie kolumn
            Console.WriteLine("Matrix_Size\tCritical_Points\tLoops_Number");

            //Deklaracja wyszukiwania binarnego
            Binarne binarne = new Binarne();

            //Testowo licznik pętli
            int _iCouter = 0;

            //Pętla po punktach pomiarowych
            for (int i = 2; i <= 280; i += 4)            //70 punktów pomiarowych
            {
                //Tworzenie tablic o podanej wielkości
                int[] _oMatrix = CreateMatrix(i * 1000000, int.MaxValue - 1);

                //Sortowanie tablicy od najmniejszych wartości do najwiekszych
                Array.Sort(_oMatrix);

                //Zmienna przechowująca sumę punktów pomiaroywch
                long _lCriticalPointsSum = 0;

                //Licznik pętli średniej binarnej
                uint _uAverageLoops = 0;

                //Pętla średniej binarnej
                for (int j = 0; j < _oMatrix.Length / 2; j += 10000)                //(długość tablicy / 2) / 10 000 prób
                {
                    //Losowa liczba do szukania
                    int _iRandomNumber = _oMatrix[j];

                    //Szukanie elementu binarnie
                    binarne.BinSearchInst(_oMatrix, _iRandomNumber, out long _lCriticalPoints);                    //Zmienna przechowująca ilosć punktów krytycznych

                    //Sumowanie punktów krytycznych
                    _lCriticalPointsSum += _lCriticalPoints;

                    //Inkrementacja licznika pętli
                    _uAverageLoops++;
                }

                //Wyświetlenie statystyk
                Console.WriteLine($"{i * 1000000}\t\t{_lCriticalPointsSum / _uAverageLoops}\t\t{++_iCouter}");                //Testowo licznik pętli - Couter
            }
        }
예제 #3
0
        static void Bin_Ave_Instr()
        {
            //Opis
            Console.WriteLine("Wyszukiwanie_Binarne_Średnie_Instrumentacja");

            //Wyświetlenie kolumn
            Console.WriteLine("Matrix_Size\tCritical_Points\tLoops_Number");

            //Deklaracja wyszukiwania binarnego
            Binarne binarne = new Binarne();

            //Testowo licznik pętli
            int _iCouter = 1;

            //Pętla po punktach pomiarowych
            for (int i = 2; i <= 280; i += 4)            //70 punktów pomiarowych
            {
                //Tworzenie tablic o podanej wielkości
                int[] _oMatrix = CreateMatrix(i * 1000000, int.MaxValue - 1);

                //Sprawdzenie wartości środkowego elementu w tablicy
                int _iMiddleNumber = _oMatrix[(_oMatrix.Length - 1) / 2];

                //Zmienna przechowująca ilosć punktów krytycznych
                long _lCriticalPoints = 0;

                //Zmienna przechowująca sumę punktów pomiaroywch między przypadkiem optymistycznym a pesymistycznym
                long _lCriticalPointsSum = 0;

                //Szukanie środkowego elementu
                binarne.BinSearchInst(_oMatrix, _iMiddleNumber, out _lCriticalPoints);

                //Sumowanie punktów krytycznych
                _lCriticalPointsSum += _lCriticalPoints;

                //Szukanie ostatniego elementu
                binarne.BinSearchInst(_oMatrix, int.MaxValue, out _lCriticalPoints);

                //Sumowanie punktów krytycznych
                _lCriticalPointsSum += _lCriticalPoints;

                //Wyświetlenie statystyk
                Console.WriteLine($"{i * 1000000}\t\t{_lCriticalPointsSum / 2}\t\t{_iCouter++}");                //Testowo licznik pętli - Couter
            }
        }
예제 #4
0
        static void Bin_Pes_Time()
        {
            //Opis
            Console.WriteLine("Wyszukiwanie_Binarne_Pesymistyczne_PomiarCzasu");

            //Wyświetlenie kolumn
            Console.WriteLine("Matrix_Size\tSearch_Time\tLoops_Number");

            //Deklaracja stopera
            Stopwatch Time = new Stopwatch();

            //Deklaracja wyszukiwania binarnego
            Binarne binarne = new Binarne();

            //Testowo licznik pętli
            int _iCouter = 1;

            //Pętla po punktach pomiarowych
            for (int i = 2; i <= 280; i += 4)            //70 punktów pomiarowych
            {
                //Tworzenie tablic o podanej wielkości
                int[] _oMatrix = CreateMatrix(i * 1000000, int.MaxValue - 1);

                //Sortowanie tablicy od najmniejszych wartości do najwiekszych
                Array.Sort(_oMatrix);

                //Tworzenie listy wyników czasowych
                List <long> _oTimesList = new List <long>();

                //Zmienna przechowująca wynik czasowy
                long _lTimeSum = 0;

                //Uśrednienie wyniku
                for (int x = 0; x < 7; x++)                //7 prób
                {
                    //Rozpoczecie pomiaru czasu
                    Time.Start();

                    //Szukanie elementu o wartości uint.max
                    binarne.BinSearchTime(_oMatrix, int.MaxValue);

                    //Pomiar czasu
                    _lTimeSum += Time.ElapsedTicks;

                    //Resetowanie stopera
                    Time.Reset();

                    //Dodanie wyniku do listy wyników czasowych
                    _oTimesList.Add(_lTimeSum);
                }

                //Sortowanie tablicy wyników czasowych
                _oTimesList.Sort();

                //Usunięcie skrajnych wartości
                _oTimesList.RemoveAt(0);
                _oTimesList.RemoveAt(_oTimesList.Count - 1);

                //Deklaracja zmiennej uśredniajacej wynik
                long _lAverage = 0;

                //Sumowanie wyników
                foreach (long point in _oTimesList)
                {
                    _lAverage += point;
                }

                //Uśrednienie wyniku
                _lAverage /= _oTimesList.Count;

                //Wyświetlenie statystyk
                Console.WriteLine($"{i * 1000000}\t\t{_lAverage}\t\t{_iCouter++}");                //Testowo licznik pętli - Couter
            }
        }
예제 #5
0
        static void Bin_Ave_Time()
        {
            //Opis
            Console.WriteLine("Wyszukiwanie_Binarne_Średnie_PomiarCzasu");

            //Wyświetlenie kolumn
            Console.WriteLine("Matrix_Size\tSearch_Time\tLoops_Number");

            //Deklaracja stopera
            Stopwatch Time = new Stopwatch();

            //Deklaracja wyszukiwania binarnego
            Binarne binarne = new Binarne();

            //Testowo licznik pętli
            int _iCouter = 1;

            //Pętla po punktach pomiarowych
            for (int i = 2; i <= 280; i += 4)            //70 punktów pomiarowych
            {
                //Tworzenie tablic o podanej wielkości
                int[] _oMatrix = CreateMatrix(i * 1000000, int.MaxValue - 1);                //Wraz ze sztywno określoną ostatnią wartośćia w tablicy

                //Sprawdzenie wartości środkowego elementu w tablicy
                int _iMiddleNumber = _oMatrix[(_oMatrix.Length - 1) / 2];

                //Tworzenie listy wyników czasowych
                List <long> _oTimesList = new List <long>();

                //Zmienna przechowująca sumę czasów między przypadkiem optymistycznym a pesymistycznym
                long _lTimeSum = 0;

                //Uśrednienie wyniku
                for (int x = 0; x < 7; x++)                //7 prób
                {
                    //Rozpoczecie pomiaru czasu
                    Time.Start();

                    //Szukanie pierwszego elementu
                    binarne.BinSearchTime(_oMatrix, _iMiddleNumber);

                    //Sumowanie czasów
                    _lTimeSum += Time.ElapsedTicks;

                    //Resetowanie stopera
                    Time.Restart();

                    //Szukanie srodkowego elementu
                    binarne.BinSearchTime(_oMatrix, int.MaxValue);

                    //Sumowanie czasów
                    _lTimeSum += Time.ElapsedTicks;

                    //Resetowanie stopera
                    Time.Reset();

                    //Dodanie Uśrednionej sumy czasu do listy wyników czasowych
                    _oTimesList.Add(_lTimeSum / 2);
                }

                //Sortowanie tablicy wyników czasowych
                _oTimesList.Sort();

                //Usunięcie skrajnych wartości
                _oTimesList.RemoveAt(0);
                _oTimesList.RemoveAt(_oTimesList.Count - 1);

                //Deklaracja zmiennej uśredniajacej wynik
                long _lAverage = 0;

                //Sumowanie wyników
                foreach (long point in _oTimesList)
                {
                    _lAverage += point;
                }

                //Uśrednienie wyniku
                _lAverage /= _oTimesList.Count;

                //Wyświetlenie statystyk
                Console.WriteLine($"{i * 1000000}\t\t{_lAverage}\t\t{_iCouter++}");                //Testowo licznik pętli - Couter
            }
        }
예제 #6
0
        static void Bin_Ave_Time()
        {
            //Opis
            Console.WriteLine("Wyszukiwanie_Binarne_Średnie_PomiarCzasu");

            //Wyświetlenie kolumn
            Console.WriteLine("Matrix_Size\tSearch_Time\tLoops_Number");

            //Deklaracja stopera
            Stopwatch Time = new Stopwatch();

            //Deklaracja wyszukiwania binarnego
            Binarne binarne = new Binarne();

            //Testowo licznik pętli
            int _iCouter = 0;

            //Pętla po punktach pomiarowych
            for (int i = 2; i <= 280; i += 4)            //70 punktów pomiarowych
            {
                //Tworzenie tablic o podanej wielkości
                int[] _oMatrix = CreateMatrix(i * 1000000, int.MaxValue - 1);

                //Sortowanie tablicy od najmniejszych wartości do najwiekszych
                Array.Sort(_oMatrix);

                //Tworzenie listy wyników czasowych średniej
                List <long> _oTimesListAverage = new List <long>();

                //Tworzenie listy wyników czasowych
                List <long> _oTimesList = new List <long>();

                //Licznik pętli średniej binarnej
                uint _uAverageLoops = 0;

                //Pętla średniej binarnej
                for (int j = 0; j < _oMatrix.Length / 2; j += 10000)                //(długość tablicy / 2) / 10 000 prób
                {
                    //Losowa liczba do szukania
                    int _iRandomNumber = _oMatrix[j];

                    //Uśrednienie wyniku czasowego
                    for (int x = 0; x < 10; x++)                    //10 prób
                    {
                        //Rozpoczecie pomiaru czasu
                        Time.Start();

                        //Szukanie losowego elementu binarnie
                        binarne.BinSearchTime(_oMatrix, _iRandomNumber);

                        //Pomiar czasu
                        Time.Stop();

                        //Dodanie wyniku do listy wyników czasowych
                        _oTimesList.Add(Time.ElapsedMilliseconds);

                        //Resetowanie stopera
                        Time.Reset();
                    }

                    //Sortowanie listy wyników czasowych
                    _oTimesList.Sort();

                    //Usunięcie skrajnych wartości
                    _oTimesList.RemoveAt(0);
                    _oTimesList.RemoveAt(_oTimesList.Count - 1);

                    //Dodanie wyników do listy śreniej wyników czasowych
                    foreach (long time in _oTimesList)
                    {
                        _oTimesListAverage.Add(time);
                    }

                    //Inkrementacja licznika pętli
                    _uAverageLoops++;
                }

                //Deklaracja zmiennej uśredniajacej wynik
                long _lAverage = 0;

                //Sumowanie wyników
                foreach (long point in _oTimesListAverage)
                {
                    _lAverage += point;
                }

                //Uśrednienie wyniku
                _lAverage /= _oTimesListAverage.Count;

                //Wyświetlenie statystyk
                Console.WriteLine($"{i * 1000000}\t\t{_lAverage}\t\t{++_iCouter}");                //Testowo licznik pętli - Couter
            }
        }