diff --git a/java/MergeSort.java b/java/MergeSort.java new file mode 100644 index 0000000..9e01fd6 --- /dev/null +++ b/java/MergeSort.java @@ -0,0 +1,119 @@ +import java.util.Scanner; + +public class MergeSort{ + + public static void main(String a[]){ + + int temp; + + +Scanner sc=new Scanner (System.in); + +System.out.println("Enter N ( how many numbers to be sorted)"); + +int n = sc.nextInt(); + + +int [] list=new int[n]; + +System.out.println("Enter "+n+ " numbers 1 by 1"); + + +for (int i=0 ; i= high) + { + return; + } + + + int middle = (low + high) / 2; + + mergeSort(list, low, middle); + + mergeSort(list, middle + 1, high); + + merge(list, low,middle,high); + + + } + + +private static void merge(int list[], int low, int middle, int high) + +{ + + int IstList_end= middle; + + int IIndList_start = middle + 1; + + int l=low; + + while ((l <= IstList_end) && (IIndList_start <= high)) + + { + + if (list[low] < list[IIndList_start]) { + + low++; + + } else { + + int temp = list[IIndList_start]; + + for (int j = IIndList_start-1; j >= low; j--) { + + list[j+1] = list[j]; + + } + + list[low] = temp; + + low++; + + IstList_end++; + + IIndList_start++; + + } + + } + + + } + +}