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 } }
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 } }
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 } }
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 } }
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 } }
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 } }