#include <stdio.h>
int sortedList[8]={0};
int merge (int* array, int left, int pivot, int right){
int Li = 0;
int Ri = pivot +1;
int SLi = 0;
while (Li<=pivot && Ri <= right){
if (array[Li] > array[Ri] ){
sortedList[SLi]= array[Ri];
Ri++;
}
else {
sortedList[SLi]= array[Li];
Li++;
}
SLi++;
}
while (Li <= pivot){
sortedList [SLi++]= array[Li++];
}
while (Ri <= right){
sortedList [SLi++] = array[Ri++];
}
for (int pi = 0 ; pi<SLi; pi++)
printf ("%d ", sortedList
[pi
]);
}
int mergeSort (int*list, int left, int right){
//printf ("left = %d\tright %d\n", left, right);
if (right <= left){
//printf ("basecase\n");
return 0;
}
int pivot = (left+right)/2;
mergeSort (list, left, pivot);
mergeSort (list, pivot+1, right);
merge (list, left, pivot, right);
return 1;
}
int main(void) {
int array []= {5,10,1,3,8,6,9,7};
int left = 0;
int right = sizeof(array)/sizeof(int);
mergeSort (array, left, right);
// your code goes here
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgc29ydGVkTGlzdFs4XT17MH07CgppbnQgbWVyZ2UgKGludCogYXJyYXksIGludCBsZWZ0LCBpbnQgcGl2b3QsIGludCByaWdodCl7CglpbnQgTGkgPSAwOyAKCWludCBSaSA9IHBpdm90ICsxOyAKCWludCBTTGkgPSAwOyAKCQoJd2hpbGUgKExpPD1waXZvdCAmJiBSaSA8PSByaWdodCl7CgkJaWYgKGFycmF5W0xpXSA+IGFycmF5W1JpXSApewoJCQlzb3J0ZWRMaXN0W1NMaV09IGFycmF5W1JpXTsKCQkJUmkrKzsKCQl9CgkJZWxzZSB7CgkJCXNvcnRlZExpc3RbU0xpXT0gYXJyYXlbTGldOwoJCQlMaSsrOwoJCX0KCQlTTGkrKzsKCX0KCQoJCgl3aGlsZSAoTGkgPD0gcGl2b3QpewoJCXNvcnRlZExpc3QgW1NMaSsrXT0gYXJyYXlbTGkrK107Cgl9CgkKCXdoaWxlIChSaSA8PSByaWdodCl7CgkJc29ydGVkTGlzdCBbU0xpKytdID0gYXJyYXlbUmkrK107Cgl9CgkKCQoJZm9yIChpbnQgcGkgPSAwIDsgcGk8U0xpOyBwaSsrKQoJCXByaW50ZiAoIiVkICIsIHNvcnRlZExpc3RbcGldKTsKCQoJcHJpbnRmKCJcbiIpOwp9CgppbnQgbWVyZ2VTb3J0IChpbnQqbGlzdCwgaW50IGxlZnQsIGludCByaWdodCl7CgkvL3ByaW50ZiAoImxlZnQgPSAlZFx0cmlnaHQgJWRcbiIsIGxlZnQsIHJpZ2h0KTsKCWlmIChyaWdodCA8PSBsZWZ0KXsKCQkvL3ByaW50ZiAoImJhc2VjYXNlXG4iKTsKCQlyZXR1cm4gMDsKCX0KCQoJaW50IHBpdm90ID0gKGxlZnQrcmlnaHQpLzI7CgltZXJnZVNvcnQgKGxpc3QsIGxlZnQsIHBpdm90KTsKCW1lcmdlU29ydCAobGlzdCwgcGl2b3QrMSwgcmlnaHQpOwoJbWVyZ2UgKGxpc3QsIGxlZnQsIHBpdm90LCByaWdodCk7CglyZXR1cm4gMTsKCQoJCn0KCQoKCmludCBtYWluKHZvaWQpIHsKCQoJaW50IGFycmF5IFtdPSB7NSwxMCwxLDMsOCw2LDksN307CgkKCWludCBsZWZ0ID0gMDsKCWludCByaWdodCA9IHNpemVvZihhcnJheSkvc2l6ZW9mKGludCk7CgkKCW1lcmdlU29ydCAoYXJyYXksIGxlZnQsIHJpZ2h0KTsgCgkKCQoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0K