# Need help with merge sort algorithm

• September 16th, 2012, 02:03 AM
depecheSoul
Need help with merge sort algorithm
Hello.

I am trying to code a merge sort algoritm, using my knowledge of C++. I have made some code but it is not working. It is giving some random results.

Can you please look at my code and see improvements I can make.

Thanks?

Code:

``` #include <cstdlib> #include <iostream> using namespace std; void print(int *niz) {     for (int f1=0; niz[f1]!='\0'; f1++) {         cout << niz[f1] << " ";     }     cout << endl; } void merge(int *niz, int low, int medium, int high) {        int *niz2 = new int[high-low];         int bottom = low;     int top = medium-1;         for (int f1=low; f1<high; f1++) {         if(bottom>medium) {             niz2[f1-low] = niz[top++];         }         else if(top>high) {             niz2[f1-low] = niz[bottom++];         }         else if(niz[bottom]<niz[top]) {             niz2[f1-low] = niz[bottom++];         }         else {             niz2[f1-low] = niz[top++];                    }     }         for (int f1=low; f1<high; f1++) {         niz[f1]=niz2[f1-low];     }         delete [] niz2; } void merge_sort(int *niz, int low, int high) {     if(low < high) {         int middle = (high+low)/2;         merge_sort(niz, low, middle);         merge_sort(niz, middle+1, high);         merge(niz, low, middle, high);     } } int main(int argc, char** argv) {     srand((unsigned)time(0));         int velicina = 10;     int *niz = new int[velicina];         for (int f1=0; f1<velicina; f1++) {         niz[f1] = rand()%10+1;     }         print(niz);         merge_sort(niz, 0, velicina-1);         print(niz);     cout << "kraj" << endl;         return 0; }```
• September 16th, 2012, 01:21 PM
Paul McKenzie
Re: Need help with merge sort algorithm
Quote:

Originally Posted by depecheSoul
Hello.

I am trying to code a merge sort algoritm, using my knowledge of C++. I have made some code but it is not working. It is giving some random results.

OK, so what have you done to debug your own code? Have you used the debugger that comes with your compiler to see where things are going wrong?

Regards,

Paul McKenzie