Skip to content

Commit 384aef8

Browse files
authored
Merge pull request #483 from Anadee11/MergeSt
Merge-Sort
2 parents b90c71b + e7a19e6 commit 384aef8

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

java/sorting/merge-sort.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
2+
class MergeSort
3+
{
4+
5+
void merge(int arr[], int l, int m, int r)
6+
{
7+
8+
int n1 = m - l + 1;
9+
int n2 = r - m;
10+
11+
12+
int L[] = new int[n1];
13+
int R[] = new int[n2];
14+
15+
16+
for (int i = 0; i < n1; ++i)
17+
L[i] = arr[l + i];
18+
for (int j = 0; j < n2; ++j)
19+
R[j] = arr[m + 1 + j];
20+
int i = 0, j = 0;
21+
int k = l;
22+
while (i < n1 && j < n2) {
23+
if (L[i] <= R[j]) {
24+
arr[k] = L[i];
25+
i++;
26+
}
27+
else {
28+
arr[k] = R[j];
29+
j++;
30+
}
31+
k++;
32+
}
33+
while (i < n1) {
34+
arr[k] = L[i];
35+
i++;
36+
k++;
37+
}
38+
while (j < n2) {
39+
arr[k] = R[j];
40+
j++;
41+
k++;
42+
}
43+
}
44+
void sort(int arr[], int l, int r)
45+
{
46+
if (l < r) {
47+
int m =l+ (r-l)/2;
48+
sort(arr, l, m);
49+
sort(arr, m + 1, r);
50+
merge(arr, l, m, r);
51+
}
52+
}
53+
static void printArray(int arr[])
54+
{
55+
int n = arr.length;
56+
for (int i = 0; i < n; ++i)
57+
System.out.print(arr[i] + " ");
58+
System.out.println();
59+
}
60+
public static void main(String args[])
61+
{
62+
int arr[] = { 12, 11, 13, 5, 6, 7 };
63+
64+
System.out.println("Given Array");
65+
printArray(arr);
66+
67+
MergeSort ob = new MergeSort();
68+
ob.sort(arr, 0, arr.length - 1);
69+
70+
System.out.println("\nSorted array");
71+
printArray(arr);
72+
}
73+
}
74+

0 commit comments

Comments
 (0)