54 lines
1.4 KiB
Java
54 lines
1.4 KiB
Java
import java.util.*;
|
|
public class mergeSort{
|
|
static void merge(int arr[], int left, int mid, int right, int temp[]){
|
|
int i = left;
|
|
int j = mid+1;
|
|
int k = left;
|
|
|
|
while(i<=mid && j<=right){
|
|
if(arr[i]<=arr[j]){
|
|
temp[k++] = arr[i++];
|
|
}else{
|
|
temp[k++] = arr[j++];
|
|
}
|
|
}
|
|
while(i<=mid)
|
|
temp[k++] = arr[i++];
|
|
while(j<=right)
|
|
temp[k++] = arr[j++];
|
|
|
|
for(int x = left;x<=right;x++){
|
|
arr[x] = temp[x];
|
|
}
|
|
}
|
|
static void mergeSort(int arr[], int left, int right, int temp[]){
|
|
if(left<right){
|
|
int mid = (right+left)/2;
|
|
mergeSort(arr, left, mid, temp);
|
|
mergeSort(arr, mid+1, right, temp);
|
|
merge(arr, left, mid, right, temp);
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args){
|
|
Scanner sc = new Scanner(System.in);
|
|
|
|
System.out.print("Enter number of elements: ");
|
|
int n= sc.nextInt();
|
|
|
|
int arr[] = new int[n];
|
|
int temp[] = new int[n];
|
|
|
|
System.out.println("Enter "+n+" elements: ");
|
|
for(int i =0;i<n;i++){
|
|
arr[i] = sc.nextInt();
|
|
}
|
|
mergeSort(arr,0,n-1,temp);
|
|
System.out.println("\nSorted array:");
|
|
for(int i =0;i<n;i++){
|
|
System.out.print(arr[i]+ " ");
|
|
}
|
|
sc.close();
|
|
}
|
|
}
|