/sort high half recmergesort(workspacemid+ upperbound)/merge them merge(workspacelowerboundmid+ upperbound)/end else /end recmergesort //private void merge(double[workspaceint lowptrint highptrint upperboundint /workspace index int lowerbound lowptrint mid highptr- int upperbound-lowerbound+ /of items while(lowptr <mid &highptr <upperboundifthearray[lowptrthearray[highptrworkspace[ ++thearray[lowptr++]else workspace[ ++thearray[highptr++]while(lowptr <midworkspace[ ++thearray[lowptr++]while(highptr <upperboundworkspace[ ++thearray[highptr++]for( = <nj++thearray[lowerbound+jworkspace[ ]/end merge(///end class darray ///////////////////////////////////////////////////////////////class mergesortapp public static void main(string[argsint maxsize /array size darray arr/reference to array arr new darray(maxsize)/create the array arr insert( )arr insert( )arr insert( )arr insert( )arr insert( )arr insert( )/insert items