Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.59 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. namespace Wyszukiwanie
  4. {
  5.     class Program
  6.     {
  7.         static ulong AddNumberL, AddNumberB;
  8.         long StartingTime = Stopwatch.GetTimestamp();
  9.         bool IsPresentLinInst(ulong[] Vector, ulong Number)
  10.         {
  11.             AddNumberL = 0;
  12.             for (int i = 0; i < Vector.Length; i++, AddNumberL++)
  13.                 if (Vector[i] == Number) return true;
  14.             return false;
  15.         }
  16.         bool IsPresentBinInst(ulong[] Vector, ulong Number)
  17.         {
  18.             AddNumberB = 0;
  19.             int Left = 0, Right = Vector.Length - 1, Middle;
  20.             while (Left <= Right)
  21.             {
  22.                 AddNumberB++;
  23.                 Middle = (Left + Right) / 2;
  24.                 if (Vector[Middle] == Number) return true;
  25.                 else if (Vector[Middle] > Number) Right = Middle - 1;
  26.                 else Left = Middle + 1;
  27.             }
  28.             return false;
  29.         }
  30.  
  31.         bool IsPresentLinTime(ulong[] Vector, ulong Number)
  32.         {
  33.             for (int i = 0; i < Vector.Length; i++)
  34.                 if (Vector[i] == Number) return true;
  35.             return false;
  36.         }
  37.         bool IsPresentBinTime(ulong[] Vector, ulong Number)
  38.         {
  39.             int Left = 0, Right = Vector.Length - 1, Middle;
  40.             while (Left <= Right)
  41.             {
  42.                 Middle = (Left + Right) / 2;
  43.                 if (Vector[Middle] == Number) return true;
  44.                 else if (Vector[Middle] > Number) Right = Middle - 1;
  45.                 else Left = Middle + 1;
  46.             }
  47.             return false;
  48.         }
  49.         static void Main(string[] args)
  50.         {
  51.             Program mc = new Program();
  52.            
  53.             /*ulong[] array = new ulong[268435000];
  54.             for (ulong i = 0; i < 268435000; i++)
  55.             {
  56.                 array[i] = i;
  57.             }
  58.             //Sprawdzanie wydajności przez instrumentacje
  59.             for (ulong j = 0; j < 268435000; j+= 26843500)
  60.             {
  61.                 mc.IsPresentBinInst(array, j);
  62.                 mc.IsPresentLinInst(array, j);
  63.                 Console.WriteLine(j + " | " + AddNumberL + " | "  + AddNumberB);
  64.             }
  65.             */
  66.  
  67.             ulong[] array = new ulong[268435000];
  68.             for (ulong i = 0; i < 268435000; i++)
  69.             {
  70.                 array[i] = i;
  71.             }
  72.             const int NIter = 10;
  73.             for (ulong u = 0; u < 268435000; u += 26843500)
  74.             {
  75.                 double ElapsedSeconds;
  76.                 long ElapsedTime = 0, MinTime = long.MaxValue, MaxTime = long.MinValue, IterationElapsedTime;
  77.                 for (int n = 0; n < (NIter + 1 + 1); ++n) // odejmujemy wartości skrajne
  78.                 {
  79.                     long StartingTime = Stopwatch.GetTimestamp();
  80.                     bool r = mc.IsPresentBinTime(array, u);
  81.                     long EndingTime = Stopwatch.GetTimestamp();
  82.                     IterationElapsedTime = EndingTime - StartingTime;
  83.                     ElapsedTime += IterationElapsedTime;
  84.                     //Console.Write("Iter[" + n + "]:" + IterationElapsedTime + "\t");
  85.                     if (IterationElapsedTime < MinTime) MinTime = IterationElapsedTime;
  86.                     if (IterationElapsedTime > MaxTime) MaxTime = IterationElapsedTime;
  87.                 }
  88.                 ElapsedTime -= (MinTime + MaxTime);
  89.                 ElapsedSeconds = ElapsedTime * (1.0 / (NIter * Stopwatch.Frequency));
  90.                 Console.WriteLine("{0}\t{1}", u, ElapsedSeconds.ToString("F4"));
  91.             }
  92.            
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement