Guest User

Untitled

a guest
Mar 21st, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int Array[10];
  6.  
  7. void MSort(int left, int right) {
  8. if (right == left)
  9. return;
  10. if (right - left == 1) {
  11. if (Array[right] < Array[left])
  12. swap(Array[right], Array[left]);
  13. return;
  14. }
  15. int median = (right + left) / 2;
  16. int buffer[10];
  17. int left_ = left;
  18. int right_ = median + 1;
  19. int c = 0;
  20.  
  21. MSort(left, median);
  22. MSort(median + 1, right);
  23.  
  24. while (right - left + 1 != c) {
  25. if (left_ > median)
  26. buffer[c++] = Array[right_++];
  27. else if (right_ > right)
  28. buffer[c++] = Array[left_++];
  29. else if (Array[left_] > Array[right_])
  30. buffer[c++] = Array[right_++];
  31. else buffer[c++] = Array[left_++];
  32.  
  33. }
  34. for (int i = 0; i < c; i++)
  35. Array[i + left] = buffer[i];
  36.  
  37.  
  38. for (int i = 0; i < c; i++)
  39. Array[i + left] = buffer[i];
  40.  
  41. }
  42.  
  43. int main() {
  44.  
  45. const int n = 10;
  46.  
  47. for (int i = 0; i < n; i++)
  48. cin >> Array[i];
  49.  
  50. MSort(0, n - 1);
  51.  
  52. for (int i = 0; i < n; i++)
  53. cout << Array[i] << " ";
  54. cout << endl;
  55. return 0;
  56. }
Add Comment
Please, Sign In to add comment