Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace Sorting
  5. {
  6. class Program
  7. {
  8. static int n;
  9. static int[] a;
  10.  
  11. static int[] help;
  12. static void Merge(int l, int middle, int r)
  13. {
  14. for(int i = l; i <= r; i++)
  15. {
  16. help[i] = a[i];
  17. }
  18.  
  19. int left = l;
  20. int right = middle + 1;
  21. int k = l;
  22.  
  23. while(left <= middle && right <= r)
  24. {
  25. if (help[left] < help[right])
  26. {
  27. a[k++] = help[left];
  28. left++;
  29. }
  30. else
  31. {
  32. a[k++] = help[right];
  33. right++;
  34. }
  35. }
  36. while(left <= middle)
  37. {
  38. a[k++] = help[left];
  39. left++;
  40. }
  41. while(right <= r)
  42. {
  43. a[k++] = help[right];
  44. right++;
  45. }
  46. }
  47.  
  48. static void Merge_Sort(int l, int r)
  49. {
  50. if (l >= r) return;
  51.  
  52. int middle = (l + r) / 2;
  53.  
  54. Merge_Sort(l, middle);
  55. Merge_Sort(middle + 1, r);
  56. Merge(l, middle, r);
  57. }
  58.  
  59. static int[] br;
  60. static void Count_Sort()
  61. {
  62. br = new int[a.Max() + 1];
  63. for(int i = 0; i < br.Length; i++)
  64. {
  65. br[i] = 0;
  66. }
  67. for(int i = 0; i < n; i++)
  68. {
  69. br[a[i]]++;
  70. }
  71.  
  72. int k = 0;
  73. int sz = a.Max();
  74. for(int i = 0; i <= sz; i++)
  75. {
  76. for(int j = 0; j < br[i]; j++)
  77. {
  78. a[k++] = i;
  79. }
  80. }
  81. }
  82.  
  83. static void Main(string[] args)
  84. {
  85. n = int.Parse(Console.ReadLine());
  86.  
  87. a = new int[n];
  88. help = new int[n];
  89.  
  90. for(int i = 0; i < n; i++)
  91. {
  92. a[i] = int.Parse(Console.ReadLine());
  93.  
  94. }
  95.  
  96. //Merge_Sort(0, n - 1);
  97. Count_Sort();
  98.  
  99. Console.WriteLine();
  100. for(int i = 0; i < n; i++)
  101. {
  102. Console.Write(a[i] + " ");
  103. }
  104. }
  105. }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement