#include <iostream>
using namespace std;
void merge(int *arr, int size, int first, int middle, int last)
{
int temp[size];
for(int i = first; i<=last; i++)
temp[i] = arr[i];
int i=first, j=middle+1, k=first; // 1st Change, Set k to first instead of 0
while(i<=middle && j<=last)
{
if(temp[i] <= temp[j])
arr[k++] = temp[i++];
else
arr[k++]=temp[j++]; // 2nd Change, use j instead of i
}
while(i<=middle)
arr[k++]=temp[i++];
while(j<=last) // 3rd Change you missed this case
arr[k++]=temp[j++];
}
void mergesort(int *arr, int size, int first, int last)
{
if(first<last)
{
int middle = ( first + last )/2;
mergesort(arr,size,first,middle);
mergesort(arr,size,middle+1,last);
merge(arr,size,first,middle,last);
}
}
int main()
{
cout <<"Him";
const int size = 10;
int numbers [] = {5,10,1,6,2,9,3,8,7,4};
mergesort(numbers,size,0,9);
for( int i= 0; i<size; ++i)
{
cout << numbers[i] << " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdm9pZCBtZXJnZShpbnQgKmFyciwgaW50IHNpemUsIGludCBmaXJzdCwgaW50IG1pZGRsZSwgaW50IGxhc3QpCnsKICAgIGludCB0ZW1wW3NpemVdOwogICAgZm9yKGludCBpID0gZmlyc3Q7IGk8PWxhc3Q7IGkrKykKICAgICAgdGVtcFtpXSA9IGFycltpXTsKICAgIGludCBpPWZpcnN0LCBqPW1pZGRsZSsxLCBrPWZpcnN0OyAvLyAxc3QgQ2hhbmdlLCBTZXQgayB0byBmaXJzdCBpbnN0ZWFkIG9mIDAKICAgIHdoaWxlKGk8PW1pZGRsZSAmJiBqPD1sYXN0KQogICAgewogICAgICAgaWYodGVtcFtpXSA8PSB0ZW1wW2pdKQogICAgICAgICAgYXJyW2srK10gPSB0ZW1wW2krK107CiAgICAgICBlbHNlCiAgICAgICAgICBhcnJbaysrXT10ZW1wW2orK107IC8vIDJuZCBDaGFuZ2UsIHVzZSBqIGluc3RlYWQgb2YgaQogICAgfQogICAgd2hpbGUoaTw9bWlkZGxlKQogICAgICAgYXJyW2srK109dGVtcFtpKytdOwogICAgd2hpbGUoajw9bGFzdCkgICAgLy8gM3JkIENoYW5nZSB5b3UgbWlzc2VkIHRoaXMgY2FzZQogICAgCWFycltrKytdPXRlbXBbaisrXTsKfQoKdm9pZCBtZXJnZXNvcnQoaW50ICphcnIsIGludCBzaXplLCBpbnQgZmlyc3QsIGludCBsYXN0KQp7CiAgICBpZihmaXJzdDxsYXN0KQogICAgewogICAgICAgaW50IG1pZGRsZSA9ICggZmlyc3QgKyBsYXN0ICkvMjsKICAgICAgIG1lcmdlc29ydChhcnIsc2l6ZSxmaXJzdCxtaWRkbGUpOwogICAgICAgbWVyZ2Vzb3J0KGFycixzaXplLG1pZGRsZSsxLGxhc3QpOwogICAgICAgbWVyZ2UoYXJyLHNpemUsZmlyc3QsbWlkZGxlLGxhc3QpOwogICAgfQp9CmludCBtYWluKCkKewogICAgY291dCA8PCJIaW0iOwogICAgY29uc3QgaW50IHNpemUgPSAxMDsKICAgIGludCBudW1iZXJzIFtdID0gezUsMTAsMSw2LDIsOSwzLDgsNyw0fTsKICAgIG1lcmdlc29ydChudW1iZXJzLHNpemUsMCw5KTsKICAgIGZvciggaW50IGk9IDA7IGk8c2l6ZTsgKytpKQogICAgewogICAgICAgIGNvdXQgPDwgbnVtYmVyc1tpXSA8PCAiICI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==