SHARE
TWEET

Untitled

a guest Mar 25th, 2019 106 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Diagnostics;
  7.  
  8. namespace ProjektAlgorytm1
  9. {
  10.     class Program
  11.     {
  12.         const int NIter = 2;
  13.         //static int WielkoscTablicy = 26843545;
  14.  
  15.  
  16.         static void LiniowoCzas(int dlugosc)
  17.         {
  18.             int[] y = new int[dlugosc];
  19.             for (int i = 1; i < dlugosc; i++)
  20.             {
  21.                 y[i] = i;
  22.             }
  23.  
  24.             double start = DateTime.Now.Ticks;
  25.             for (int i = 0; i < dlugosc; i++)
  26.             {
  27.                 if (y[i] == (dlugosc-1))
  28.                 {
  29.                     int miejsce = i + 1;
  30.                     break;
  31.                 }
  32.             }
  33.             double end = ((DateTime.Now.Ticks - start) / 10000000); //wynik w sekundach
  34.             Console.WriteLine("Ilo┼Ť─ç element├│w tablicy to "+dlugosc+ ". Czas do znalezienia ostatniego elementu to: " + end);
  35.         }
  36.         static void LinioweIloscKrokow(int dlugosc)
  37.         {
  38.             int[] y = new int[dlugosc];
  39.             for (int i = 1; i < dlugosc; i++)
  40.             {
  41.                 y[i] = i;
  42.             }
  43.            
  44.             ulong iloscoperacji = 0;
  45.             for (int i = 0; i < y.Length; i++)
  46.                 {
  47.                 iloscoperacji++;
  48.                 if (y[i] == (dlugosc - 1)) break;
  49.                 }
  50.             Console.WriteLine("Ilo┼Ť─ç operacji w liniowym dla " +dlugosc+ " element├│w to " + iloscoperacji);            
  51.  
  52.         }
  53.  
  54.         static void BinarnieCzas(int dlugosc)
  55.         {
  56.             int[] y = new int[dlugosc];
  57.             for (int i = 1; i < dlugosc; i++)
  58.             {
  59.                 y[i] = i;
  60.             }
  61.             {
  62.                 double CzasUS; // czas jaki up┼éyn─ů┼é w sekundach
  63.                 long CzasU = 0, MinimalnyCzas = long.MaxValue, MaxymalnyCzas = long.MinValue, IteracjaCzas;
  64.                 for (int n = 0; n < (NIter + 1 + 1); ++n)
  65.                 {
  66.                     long StartCzasu = Stopwatch.GetTimestamp();
  67.  
  68.                     {
  69.                         int lewo = 0, prawo = y.Length - 1, srodek, kroki = 0;
  70.                         while (lewo <= prawo)
  71.                         {
  72.                             kroki++;
  73.                             srodek = (lewo + prawo) / 2;
  74.                             if (y[srodek] == dlugosc) break;
  75.                             else if (y[srodek] > dlugosc) prawo = srodek - 1;
  76.                             else lewo = srodek + 1;
  77.                         }
  78.                     }
  79.                     long KoniecCzasu = Stopwatch.GetTimestamp();
  80.                     IteracjaCzas = KoniecCzasu - StartCzasu;
  81.                     CzasU += IteracjaCzas;
  82.                     if (IteracjaCzas < MinimalnyCzas) MinimalnyCzas = IteracjaCzas;
  83.                     if (IteracjaCzas > MaxymalnyCzas) MaxymalnyCzas = IteracjaCzas;
  84.                 }
  85.                 CzasU -= (MinimalnyCzas + MaxymalnyCzas);
  86.                 CzasUS = CzasU * (1.0 / (NIter * Stopwatch.Frequency));
  87.                 Console.Write("Czas wyszukiwania binarnego dla tablicy z " + dlugosc + " elementami to: ");
  88.                 Console.Write("" + CzasUS.ToString("F8" )); // wy┼Ťwietlenie do 8 miejsca po przecinku
  89.                 Console.WriteLine();
  90.             }
  91.  
  92.         }
  93.         static void BinarnieIloscKrokow(int dlugosc)
  94.         {
  95.             int[] y = new int[dlugosc];
  96.             for (int i = 1; i < dlugosc; i++)
  97.             {
  98.                 y[i] = i;
  99.             }
  100.  
  101.             int lewo = 0, prawo = y.Length - 1, srodek, kroki=0;
  102.             while (lewo <= prawo)
  103.             {
  104.                 kroki++;
  105.                 srodek = (lewo + prawo) / 2;
  106.                 if (y[srodek] == dlugosc) break;
  107.                 else if (y[srodek] > dlugosc) prawo = srodek - 1;
  108.                 else lewo = srodek + 1;
  109.             }
  110.             Console.WriteLine("Dla "+dlugosc+" element├│w, Ilo┼Ť─ç krok├│w to: " + kroki);
  111.         }
  112.  
  113.         static int WybierzOpcje()
  114.         {
  115.             int a = 0;
  116.             string str;
  117.             while (true)
  118.             {
  119.                 Console.Write("Podaj Liczb─Ö: ");
  120.                 str = Console.ReadLine();
  121.                 if (int.TryParse(str, out a))
  122.                     break;
  123.                 else
  124.                     Console.WriteLine("Wprowad┼║ liczb─Ö 1,2,3,4,0");
  125.             }
  126.  
  127.             return a;
  128.         }
  129.         static void WyswietlMenu()
  130.         {
  131.  
  132.             Console.WriteLine("1 = przedstawienie czasu w wyszukiwaniu liniowym ");
  133.  
  134.             Console.WriteLine("2 = przedstawienie ilosci operacji w wyszukiwaniu liniowym ");
  135.  
  136.             Console.WriteLine("3 = przedstawienie czasu w wyszukiwaniu binarnym");
  137.  
  138.             Console.WriteLine("4 = Przedstawienie ilosci operacji w wyszukiwaniu binarnym");
  139.  
  140.             Console.WriteLine("0 = Wyj┼Ťcie z programu");
  141.  
  142.         }
  143.  
  144.         static void Main(string[] args)
  145.         {
  146.             Console.WriteLine("############################################################################");
  147.             Console.WriteLine("Program oblicza czas i ilo┼Ťc operacji w wyszukiwaniu liniowym oraz binarnym \nWarto┼Ť─ç najmniejsza tablicy to 26843545 i jest zwi─Ökszana z ka┼╝ym kolejnym krokiem o 26843545.");
  148.             Console.WriteLine("############################################################################");
  149.             while (true)
  150.                 {
  151.                 WyswietlMenu();
  152.                     int opcja = WybierzOpcje();
  153.                     int WielkoscTablicy = 26843545;
  154.                     switch (opcja)
  155.                     {
  156.                      case 0:
  157.                             return;
  158.  
  159.                      case 1:
  160.                         for (int i = 0; i < 10; i++)
  161.                         {
  162.                             LiniowoCzas(WielkoscTablicy);
  163.                             WielkoscTablicy = WielkoscTablicy + 26843545;
  164.                         }
  165.                         break;
  166.                     case 2:
  167.                         for (int i = 0; i < 10; i++)
  168.                         {
  169.                             LinioweIloscKrokow(WielkoscTablicy);
  170.                             WielkoscTablicy = WielkoscTablicy + 26843545;
  171.                         }
  172.                         break;
  173.                     case 3:
  174.                         for (int i = 0; i < 10; i++)
  175.                         {
  176.                             BinarnieCzas(WielkoscTablicy);
  177.                             WielkoscTablicy = WielkoscTablicy + 26843545;
  178.                         }
  179.                         break;
  180.                     case 4:
  181.                         for (int i = 0; i < 10; i++)
  182.                         {
  183.                             BinarnieIloscKrokow(WielkoscTablicy);
  184.                             WielkoscTablicy = WielkoscTablicy + 26843545;
  185.                         }
  186.                         break;
  187.                     default:
  188.                             Console.WriteLine("Wprowad┼║ co innego");
  189.                             Console.WriteLine(" ");
  190.                             break;
  191.                     }
  192.                 }
  193.             /*    
  194.             //26843545
  195.             for (int i = 0; i < 10; i++)
  196.             {
  197.                 //LiniowoCzas(WielkoscTablicy);
  198.                 //LinioweIloscKrokow(WielkoscTablicy);
  199.                 //BinarnieCzas(WielkoscTablicy);
  200.                 //BinarnieIloscKrokow(WielkoscTablicy);
  201.  
  202.                 WielkoscTablicy = WielkoscTablicy + 26843545; //26843545
  203.             }
  204.  
  205.            
  206.             //int WielkoscTablicy = 10;
  207.             //BinarnieCzas(WielkoscTablicy);
  208.             Console.ReadKey();
  209.             */
  210.         }
  211.     }
  212. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top