File tree Expand file tree Collapse file tree 1 file changed +62
-0
lines changed Expand file tree Collapse file tree 1 file changed +62
-0
lines changed Original file line number Diff line number Diff line change
1
+ void merge (int a[], int l, int m, int r)
2
+ {
3
+ int l1 = m - l + 1 ;
4
+ int l2 = r - m;
5
+
6
+ int temp1[l1];
7
+ int temp2[l2];
8
+
9
+ for (int i = 0 ; i < l1; i++)
10
+ {
11
+ temp1[i] = a[l + i];
12
+ }
13
+ for (int j = 0 ; j < l2; j++)
14
+ {
15
+ temp2[j] = a[m + j + 1 ];
16
+ }
17
+ int i = 0 ;
18
+ int j = 0 ;
19
+ int k = l;
20
+
21
+ while (i < l1 && j < l2)
22
+ {
23
+ if (temp1[i] < temp2[j])
24
+ {
25
+ a[k] = temp1[i];
26
+ i++;
27
+ }
28
+
29
+ else
30
+ {
31
+ a[k] = temp2[j];
32
+ j++;
33
+ }
34
+
35
+ while (i < l1)
36
+ {
37
+ a[k] = temp1[i];
38
+ i++;
39
+ k++;
40
+ }
41
+
42
+ while (j < l2)
43
+ {
44
+ a[k] = temp2[j];
45
+ j++;
46
+ k++;
47
+ }
48
+ }
49
+ }
50
+
51
+ void mergesort (int a[], int l, int r)
52
+ {
53
+ if (l < r)
54
+ {
55
+ int m = r + (l - r) / 2 ;
56
+
57
+ mergesort (a, l, m);
58
+ mergesort (a, m + 1 , r);
59
+
60
+ merge (a, l, m, r);
61
+ }
62
+ }
You can’t perform that action at this time.
0 commit comments