Added java implementation of merge sort (#23993)
* Added java implementation of merge sort * fix: changed to two space indentation
This commit is contained in:
committed by
The Coding Aviator
parent
cb2241acd6
commit
1827f993d2
@ -306,3 +306,54 @@ public class mergesort {
|
|||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
### Example in Java
|
||||||
|
```java
|
||||||
|
public class mergesort {
|
||||||
|
public static int[] mergesort(int[] arr, int lo, int hi) {
|
||||||
|
if (lo == hi) {
|
||||||
|
int[] ba = new int[1];
|
||||||
|
ba[0] = arr[lo];
|
||||||
|
return ba;
|
||||||
|
}
|
||||||
|
int mid = (lo + hi) / 2;
|
||||||
|
int arr1[] = mergesort(arr, lo, mid);
|
||||||
|
int arr2[] = mergesort(arr, mid + 1, hi);
|
||||||
|
return merge(arr1, arr2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int[] merge(int[] arr1, int[] arr2) {
|
||||||
|
int i = 0, j = 0, k = 0;
|
||||||
|
int n = arr1.length;
|
||||||
|
int m = arr2.length;
|
||||||
|
int[] arr3 = new int[m + n];
|
||||||
|
while (i < n && j < m) {
|
||||||
|
if (arr1[i] < arr2[j]) {
|
||||||
|
arr3[k] = arr1[i];
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
arr3[k] = arr2[j];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
while (i < n) {
|
||||||
|
arr3[k] = arr1[i];
|
||||||
|
i++;
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
while (j < m) {
|
||||||
|
arr3[k] = arr2[j];
|
||||||
|
j++;
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
return arr3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int arr[] = {2, 9, 8, 3, 6, 4, 10, 7};
|
||||||
|
int[] so = mergesort(arr, 0, arr.length - 1);
|
||||||
|
for (int i = 0; i < arr.length; i++)
|
||||||
|
System.out.print(so[i] + " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Reference in New Issue
Block a user