#include <stdio.h>
#include <stdlib.h>
#define MAXSUM 40
void MargeSort(int* Pre,int* Aft,int low,int end);
int main () {
int end[MAXSUM];
int Sort[MAXSUM];
for(int i = 0;i<MAXSUM;i++){
Sort[i] = rand()%(MAXSUM*2);
end[i] = Sort[i];
printf("%d,",Sort[i]);
}
MargeSort(Sort,end,0,MAXSUM-1);
printf("\n\n");
for(int i = 0;i<MAXSUM;i++){
printf("%d,",end[i]);
}
printf("\n\n\nHello JSRUN! \n\n - from C .");
return 0;
}
void MargeMrg(int* first,int* second,int low,int end){
int mid = (low+end)/2;
int a = low;
int b = mid+1;
int flag_k = low;
while(a<=mid&&b<=end){
if(first[a]<first[b]) second[flag_k++] = first[a++];
else second[flag_k++] = first[b++];
}
while(a<=mid) second[flag_k++] = first[a++];
while(b<=end) second[flag_k++] = first[b++];
}
void MargeSort(int* Pre,int* Aft,int low,int end){
if(low == end) Aft[low] = Pre[low];
else{
int MidSort[end+1];
MargeSort(Pre,MidSort,low,(low+end)/2);
MargeSort(Pre,MidSort,(low+end)/2+1,end);
MargeMrg(MidSort,Aft,low,end);
}
}