#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 = left;
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\t right %d\n " , left
, right
) ; if ( right <= left) {
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+CgppbnQgc29ydGVkTGlzdFs4XT17MH07CgppbnQgbWVyZ2UgKGludCogYXJyYXksIGludCBsZWZ0LCBpbnQgcGl2b3QsIGludCByaWdodCl7CglpbnQgTGkgPSAwOyAKCWludCBSaSA9IHBpdm90ICsxOyAKCWludCBTTGkgPSBsZWZ0OyAKCQoJd2hpbGUgKExpPD1waXZvdCAmJiBSaSA8PSByaWdodCl7CgkJaWYgKGFycmF5W0xpXSA+IGFycmF5W1JpXSApewoJCQlzb3J0ZWRMaXN0W1NMaV09IGFycmF5W1JpXTsKCQkJUmkrKzsKCQl9CgkJZWxzZSB7CgkJCXNvcnRlZExpc3RbU0xpXT0gYXJyYXlbTGldOwoJCQlMaSsrOwoJCX0KCQlTTGkrKzsKCX0KCQoJCgl3aGlsZSAoTGkgPD0gcGl2b3QpewoJCXNvcnRlZExpc3QgW1NMaSsrXT0gYXJyYXlbTGkrK107Cgl9CgkKCXdoaWxlIChSaSA8PSByaWdodCl7CgkJc29ydGVkTGlzdCBbU0xpKytdID0gYXJyYXlbUmkrK107Cgl9CgkKCQoJZm9yIChpbnQgcGkgPSAwIDsgcGk8U0xpOyBwaSsrKQoJCXByaW50ZiAoIiVkICIsIHNvcnRlZExpc3RbcGldKTsKCQoJcHJpbnRmKCJcbiIpOwp9CgppbnQgbWVyZ2VTb3J0IChpbnQqbGlzdCwgaW50IGxlZnQsIGludCByaWdodCl7CglwcmludGYgKCJsZWZ0ID0gJWRcdHJpZ2h0ICVkXG4iLCBsZWZ0LCByaWdodCk7CglpZiAocmlnaHQgPD0gbGVmdCl7CgkJcHJpbnRmICgiYmFzZWNhc2VcbiIpOwoJCXJldHVybiAwOwoJfQoJCglpbnQgcGl2b3QgPSAobGVmdCtyaWdodCkvMjsKCW1lcmdlU29ydCAobGlzdCwgbGVmdCwgcGl2b3QpOwoJbWVyZ2VTb3J0IChsaXN0LCBwaXZvdCsxLCByaWdodCk7CgltZXJnZSAobGlzdCwgbGVmdCwgcGl2b3QsIHJpZ2h0KTsKCXJldHVybiAxOwoJCgkKfQoJCgoKaW50IG1haW4odm9pZCkgewoJCglpbnQgYXJyYXkgW109IHs1LDEwLDEsMyw4LDYsOSw3fTsKCQoJaW50IGxlZnQgPSAwOwoJaW50IHJpZ2h0ID0gc2l6ZW9mKGFycmF5KS9zaXplb2YoaW50KTsKCQoJbWVyZ2VTb3J0IChhcnJheSwgbGVmdCwgcmlnaHQpOyAKCQoJCgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQo=