• API
• FAQ
• Tools
• Archive
SHARE
TWEET # Untitled a guest Oct 19th, 2019 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. #include <iostream>
2. #include<cmath>
3. #include<climits>
4. #include<algorithm>
5. using namespace std;
6. void merge_series(double* A, int b, int c, int e, double* D)
7. {
8.     int i = b, j = c + 1, k;
9.     for (k = b; k <= e; k++)
10.         if (j > e) D[k] = A[i++];
11.         else if (i > c) D[k] = A[j++];
12.         else if (A[i] <= A[j]) D[k] = A[i++];
13.         else D[k] = A[j++];
14. }
15. void merge_sort(double* A, int n)
16. {
17.     int s, b, c, e;
18.     double* D = new double[n];
19.     for (s = 1; s < n; s *= 2) {
20.         for (b = 0; b < n; b += s * 2) {
21.             c = min(b + s - 1, n - 1);
22.             e = min(c + s, n - 1);
23.             merge_series(A, b, c, e, D);
24.         }
25.         for (b = 0; b < n; b++) A[b] = D[b];
26.     }
27.     for (b = 0; b < n; b++) cout << A[b] << " ";
28.     delete[] D;
29. }
30.
31. int main()
32. {
33.     freopen("input.txt", "r", stdin);
34.     freopen("output.txt", "w", stdout);
35.     int n;
36.     cin >> n;
37.     double* A = new double[n];
38.     for (int i = 0; i < n; i++)
39.     {
40.         cin >> A[i];
41.     }
42.     merge_sort(A, n);
43.     return 0;
44. }
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.

Top