Advertisement
Guest User

Jakub Błaszczyk K30 Projekt3

a guest
Jun 20th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.91 KB | None | 0 0
  1.  
  2. const int NIter = 10;
  3. Console.WriteLine("n\tt[s]");
  4. for (int i = 50000; i <= 200000; i += 8000)
  5. {
  6. int[] tablica = new int[i];
  7. Random(tablica);
  8. double ElapsedSeconds;
  9. long ElapsedTime = 0, MinTime = long.MaxValue, MaxTime = long.MinValue, IterationElapsedTime;
  10. for (int n = 0; n < (NIter + 1 + 1); ++n)
  11. {
  12. long StartingTime = Stopwatch.GetTimestamp();
  13. CocktailSort(tablica);
  14. long EndingTime = Stopwatch.GetTimestamp();
  15. IterationElapsedTime = EndingTime - StartingTime;
  16. ElapsedTime += IterationElapsedTime;
  17.  
  18. if (IterationElapsedTime < MinTime) MinTime = IterationElapsedTime;
  19. if (IterationElapsedTime > MaxTime) MaxTime = IterationElapsedTime;
  20. }
  21. ElapsedTime -= (MinTime + MaxTime);
  22. ElapsedSeconds = ElapsedTime * (1.0 / (NIter * Stopwatch.Frequency));
  23. Console.WriteLine("{0}\t{1}", i, ElapsedSeconds.ToString("F4"));
  24.  
  25.  
  26.  
  27. private static void Random(int[] tablica)
  28. {
  29. Random rnd = new Random(Guid.NewGuid().GetHashCode());
  30. for (int i = 0; i < tablica.Length; i++)
  31. {
  32. tablica[i] = rnd.Next(int.MaxValue);
  33. }
  34.  
  35. private static void CocktailSort(int[] t)
  36. {
  37. int Left = 1, Right = t.Length - 1, k = t.Length - 1;
  38. do
  39. {
  40. for (int j = Right; j >= Left; j--)
  41. if (t[j - 1] > t[j])
  42. {
  43. int Buf = t[j - 1]; t[j - 1] = t[j]; t[j] = Buf;
  44. k = j;
  45. }
  46. Left = k + 1;
  47. for (int j = Left; j <= Right; j++)
  48. if (t[j - 1] > t[j])
  49. {
  50. int Buf = t[j - 1]; t[j - 1] = t[j]; t[j] = Buf;
  51. k = j;
  52. }
  53. Right = k - 1;
  54. }
  55. while (Left <= Right);
  56.  
  57.  
  58.  
  59. private static void Heapify(int[] t, uint left, uint right)
  60. {
  61. uint i = left,
  62. j = 2 * i + 1;
  63. int buf = t[i];
  64. while (j <= right)
  65. {
  66. if (j < right)
  67. if (t[j] < t[j + 1]) j++;
  68. if (buf >= t[j]) break;
  69. t[i] = t[j];
  70. i = j;
  71. j = 2 * i + 1;
  72. }
  73. t[i] = buf;
  74. }
  75. private static void HeapSort(int[] t)
  76. {
  77. uint left = ((uint)t.Length / 2),
  78. right = (uint)t.Length - 1;
  79. while (left > 0)
  80. {
  81. left--;
  82. Heapify(t, left, right);
  83. }
  84. while (right > 0)
  85. {
  86. int buf = t[left];
  87. t[left] = t[right];
  88. t[right] = buf;
  89. right--;
  90. Heapify(t, left, right);
  91. }
  92.  
  93. }
  94. }
  95. }
  96. private static void InsertionSort(int[] t)
  97. {
  98. for (uint i = 1; i < t.Length; i++)
  99. {
  100. uint j = i;
  101. int Buf = t[j];
  102. while ((j > 0) && (t[j - 1] > Buf))
  103. {
  104. t[j] = t[j - 1];
  105. j--;
  106. }
  107. t[j] = Buf;
  108. private static void SelectionSort(int[] t)
  109. {
  110. uint k;
  111. for (uint i = 0; i < (t.Length - 1); i++)
  112. {
  113. int Buf = t[i];
  114. k = i;
  115. for (uint j = i + 1; j < t.Length; j++)
  116. if (t[j] < Buf)
  117. {
  118. k = j;
  119. Buf = t[j];
  120. }
  121. t[k] = t[i];
  122. t[i] = Buf;
  123. }
  124.  
  125.  
  126. private static void Growing(int[] tablica)
  127. {
  128. for (int i = 0; i < tablica.Length; i++)
  129. { tablica[i] = i; }
  130. }
  131. private static void Descending(int[] tablica)
  132. {
  133. int x = tablica.Length;
  134. for (int i = 0; i < tablica.Length; i++)
  135. {
  136. tablica[i] = x;
  137. x--;
  138. private static void Constantly(int[] tablica)
  139. {
  140. for (int i = 0; i < tablica.Length; i++)
  141. { tablica[i] = 10; }
  142. }
  143.  
  144. private static void VShaped(int[] tablica)
  145. {
  146. int y = tablica.Length;
  147. int z = 1;
  148. for (int i = 0; i <= (tablica.Length / 2) - 1; i++)
  149. {
  150. tablica[i] = y;
  151. y -= 2;
  152. }
  153. for (int i = tablica.Length / 2; i < tablica.Length; i++)
  154. {
  155. tablica[i] = z;
  156. z += 2;
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement