void merge(int array,int L;int mid; int R){
int p1 = L,p2 = mid+1, i=0;
int temp[L+R-1];
while (p1<mid && p2<R){
temp[i++] = array[p1] < array[p2] ? array[p1++] : array[p2++];
}
while (p1<mid){
temp[i++] = array[p1++];
}
while (p2<R){
temp[i++] = array[p2++];
}
for (int i =0; i< R+L-1;i++){
array[L+i] = temp[i];
}
}
void sort(int array[], int L,int R){
if (L<R){
int mid = (L+R)/2;
sort(array,L,mid);
sort(array,mid+1,R);
merge (array,L,mid,R);
}
}