Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Probleme mit MergeSort

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.05.2004, 16:18 Uhr
~Banggart
Gast


Ich habe ein Problem mit der Implementierung von MergeSort.
Das ist der Code für das aufteilen


C++:
void MSort(int Array[], int MergeArray[], int ArraySize)
{
    if (ArraySize > 1) {
        MSort(Array, MergeArray, ArraySize/2);
        MSort(Array+ArraySize/2, MergeArray, ArraySize - ArraySize/2);
        Merge(Array,MergeArray,ArraySize);
    }
}


In Array stehen die zusortierenden Zahlen, MergeArray ist ein Hilfsarray. Das funktioniert auch soweit.
Probleme habe ich mit dem eingentlichen Merge.


C++:
void Merge(int Array[],int MergeArray[], int ArraySize)
{
    int i,
        links=0,
        rechts=ArraySize/2;

    for(i=0;i<ArraySize;i++)
        MergeArray[i]=Array[i];
    
    for(i=0;i<ArraySize;i++)
    {
        if(MergeArray[links]<=MergeArray[rechts]){
            Array[i]=MergeArray[links];
            links++;
        }
        else{
            Array[i]=MergeArray[rechts];
            rechts++;
        }
    }
}    


Es will einfach nicht klappen. Die ersten 3 von 8 zusortierenden Zahlen sind an der richtigen Stelle. Warum der Rest nicht? Kann mir da vielleicht jemand helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: