Sunteți pe pagina 1din 2

import java.io.*; import java.lang.

*; class merg_sort { public static void main(String args[]) throws Exception { int i,n; int k[] = new int[25]; DataInputStream in = new DataInputStream(System.in); System.out.println("\n ENTER THE LIMIT OF THE ARRAY"); n= Integer.parseInt(in.readLine()); System.out.println("\n ENTER THE ELEMENTS OF THE ARRAY"); for(i=0;i<n;i++) { System.out.println("\n ENTER THE " +(i+1)+"ELEMENTS OF THE ARRAY"); k[i] = Integer.parseInt(in.readLine()); } twomerge(k,0,n-1); System.out.println("\n ENTER THE FINALLY SORTED ARRAY IS "); for(i=0;i<n;i++) System.out.println(" \t" +k[i]); } static void twomerge(int k[],int start,int finish) { int size,middle; size = finish-start+1; if(size<=1) return; middle = start+(size/2)-1; twomerge(k,start,middle); twomerge(k,middle+1,finish); simplemerge(start, middle+1,finish,k); } static void simplemerge(int first,int second, int third, int k[]) { int i,j,l; int temp[]= new int[25]; i=first; j=second; l=0; while((i<second) && (j<=third)) { if(k[i]<=k[j]) { l++; temp[l] = k[i]; i++; } else { l++; temp[l]=k[j]; j++; } }

if(i>=second) { while(j<=third) { l++; temp[l]=k[j]; j++; } } else { while(i<second) { l++; temp[l]=k[i]; i++; } } for(i=1;i<=l;i++) k[first-1+i]=temp[i]; } }

S-ar putea să vă placă și