Skip to content

Commit 3404311

Browse files
authored
Merge pull request #33 from Ayu5-h/patch-3
Create Merge_sort.java
2 parents 5e962f3 + b60aba2 commit 3404311

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

Merge_sort.java

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import java.util.*;
2+
public class merge {
3+
4+
void mergesort(int arr[], int l, int m, int r)
5+
6+
{
7+
int n1 = m - l + 1;
8+
int n2 = r - m;
9+
int L[] = new int[n1];
10+
int R[] = new int[n2];
11+
12+
for (int i = 0; i < n1; ++i) {
13+
L[i] = arr[l + i];
14+
}
15+
16+
for (int j = 0; j < n2; ++j) {
17+
R[j] = arr[m + 1 + j];
18+
}
19+
int i = 0, j = 0;
20+
int k = l;
21+
22+
while (i < n1 && j < n2) {
23+
24+
if (L[i] <= R[j]) {
25+
arr[k] = L[i];
26+
i++;
27+
}
28+
else {
29+
arr[k] = R[j];
30+
j++;
31+
}
32+
k++;
33+
34+
}
35+
while (i < n1) {
36+
37+
arr[k] = L[i];
38+
i++;
39+
k++;
40+
}
41+
while (j < n2) {
42+
arr[k] = R[j];
43+
j++;
44+
k++;
45+
}
46+
47+
}
48+
void sort(int arr[], int l, int r)
49+
50+
{
51+
if (l < r) {
52+
int m = l + (r - l) / 2;
53+
sort(arr, l, m);
54+
sort(arr, m + 1, r);
55+
mergesort(arr, l, m, r);
56+
}
57+
58+
}
59+
60+
static void printArray(int arr[])
61+
62+
{
63+
64+
int n = arr.length;
65+
for (int i = 0; i < n; ++i) {
66+
System.out.print(arr[i] + " ");
67+
}
68+
69+
System.out.println();
70+
71+
}
72+
public static void main(String args[])
73+
{
74+
int i, n, x, arr[];
75+
76+
Scanner s = new Scanner(System.in);
77+
System.out.println("Enter no. of elements in aray:");
78+
n = s.nextInt();
79+
80+
arr = new int[n];
81+
82+
System.out.println("Enter " + n + " integers:");
83+
84+
for (i = 0;i<n; i++)
85+
arr[i] = s.nextInt();
86+
87+
merge ob = new merge();
88+
ob.sort(arr, 0, arr.length - 1);
89+
System.out.println("\nSorted array is");
90+
91+
printArray(arr);
92+
}
93+
94+
}
95+
96+

0 commit comments

Comments
 (0)