Merge Sort Problem

class Main {
public static void main(String args[]) {
int arr[] = {20,10,30,50,60,5,80,25};
// int arr1[] = {10,20,30,40,50};
// int arr2[] = {5,15,30,45,60,70,80};
// int []sr = mergeTwoArrays(arr1,arr2);
// for(int ss : sr){
// System.out.print(ss+", ");
// }
int ar[] = mergeSort(arr,0,arr.length-1);
for(int s :ar) {
System.out.println(s);
}
}
public static int[] mergeTwoArrays(int []arr1,int []arr2) {
int mergeArray[] = new int[arr1.length+arr2.length];
int i = 0, j = 0, k =0;
while(i<arr1.length&&j < arr2.length) {
if(arr1[i]<=arr2[j]) {
mergeArray[k] = arr1[i];
i++;
k++;
}else {
mergeArray[k] = arr2[j];
j++;
k++;
}
if( i == arr1.length) {
while(j<arr2.length) {
mergeArray[k] = arr2[j];
j++;
k++;
}
}
if( j == arr2.length) {
while(i<arr1.length) {
mergeArray[k] = arr2[i];
i++;
k++;
}
}
}
return mergeArray;
}
public static int[] mergeSort(int arr[],int low, int high) {

	if(low == high) {
		int base[] = new int[1];
		base[0] = arr[low];
		return base;
	}
	  int mid = (low+high)/2;
	int fh[] = mergeSort(arr,low,mid);
	int sh[] = mergeSort(arr,mid+1,high);
	int merge[] = mergeTwoArrays(fh,sh);
	return merge;
}

}===== can you please point out errors in the code it’s the code of video lectures

@AbhishekAhlawat1102
send me the link of video lecture

is in the java crux online my currrent course time and comlexity section

Actually mergeTwoArrays function is working fine but the merge sort function is not generating correct output

@AbhishekAhlawat1102
class temp {
public static void main(String args[]) {
int arr[] = { 20, 10, 30, 50, 60, 5, 80, 25 };
// int arr1[] = {10,20,30,40,50};
// int arr2[] = {5,15,30,45,60,70,80};
// int []sr = mergeTwoArrays(arr1,arr2);
// for(int ss : sr){
// System.out.print(ss+", ");
// }
int ar[] = mergeSort(arr, 0, arr.length - 1);
for (int s : ar) {
System.out.println(s);
}
}

public static int[] mergeTwoArrays(int[] arr1, int[] arr2) {
	int mergeArray[] = new int[arr1.length + arr2.length];
	int i = 0, j = 0, k = 0;
	while (i < arr1.length && j < arr2.length) {
		if (arr1[i] <= arr2[j]) {
			mergeArray[k] = arr1[i];
			i++;
			k++;
		} else {
			mergeArray[k] = arr2[j];
			j++;
			k++;
		}
	}
		if (i == arr1.length) {
			while (j < arr2.length) {
				mergeArray[k] = arr2[j];
				j++;
				k++;
			}
		}
		if (j == arr2.length) {
			while (i < arr1.length) {
				mergeArray[k] = arr1[i];
				i++;
				k++;
			}
		}
	
	return mergeArray;
}

public static int[] mergeSort(int arr[], int low, int high) {
	if (low <= high) {
		int mid = (low + high) / 2;
		if (low == mid && mid == high) {
			int base[] = new int[1];
			base[0] = arr[low];
			return base;
		}

		int fh[] = mergeSort(arr, low, mid);
		int sh[] = mergeSort(arr, mid + 1, high);
		int merge[] = mergeTwoArrays(fh, sh);
		return merge;
	}
	return new int[0];

}

}

@AbhishekAhlawat1102 i have made few changes to your code if you have any doubt do ask.
otherwise mark your doubt as resolved and rate me as well