Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Straight Insertion Sort

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
26.05.2004, 13:22 Uhr
marcel331



Hallo

Ich habe ein Problem mit dem straight Insertion sort.
Folgendes Problem:
Wir lassen mit Bubble Sort eine Liste von 5 Zahlen sortieren. Diese 5 Zahlen schreiben wir in ein Array.
Im zweiten Schritt lassen wir in einem 2 Array nochmals 3 Zahlen generieren.
Jetzt soll in einem 3 Array (also 8 Stellen groß) die 2 Arrays zusammengeführt werden und auch wieder im 3 Array sortiert werden. Das zusammenführen von den 2 Arrays bereitet mir kopfzerbrechen vielleicht könnt ihr mir hlefen, würde mich freuen
folgendes habe ich schon


C++:
int main(int argc, char* argv[])
{
int feld[5];
int neueWerte[3][3]; //= [{ 3 , 18 , 7}] [{0 , 0 , 0 }];
int pruefvariable = 0;


randomize();
/*
for(int i = 0; i < 3; i++)
{
    neueWerte[i][0] = rand()%25;
    neueWerte[i][1] = 0;
}
*/



///////  bubble sort fuer bestehende liste  //////////////////////////


    for (int zaehler=0;zaehler<5;zaehler++)
    {
    feld[zaehler]=rand()%50;
    }

    for (int y=5;y!=1;y++)
    {
        for(int i=0;i<y;i++)
        {
            if (feld[i+1] < feld[i])
            {
            int temp=feld[i];
            feld[i]=feld[i+1];
            feld[i+1]=temp;
            }
        }
    }
    for (int zaehler=0;zaehler<5;zaehler++)
    {
    cout<<feld[zaehler]<<endl;
    }
///////////////////////////////////////////////////////
//// insertion sort ///////////////////////////////////
///////////////////////////////////////////////////////

int posi = 5;

for(int j = 0; j < 3; j++)
{
    pruefvariable = neueWerte[j][0];

    for(int z = 5; z < 0; z--)
    {
        if (feld[z] < pruefvariable)
        {
            posi = z+1;
            neueWerte[j][1] = posi;
        }
    }
}

/*
for(int u = 0; u <8; u++)
{
    for(int i = 0; i < 3; i++)
    {
        if(neueWerte[i][1] == u)
         {   //ins fertige array einschreiben
         }
    }
}
*/

    getchar();

    return 0;


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.05.2004, 13:32 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja einfach ein array nehmen was mindestens 8 plätze gross ist und dann in ner schleife kopieren...

angenommen du hast diese 3 arrays...

C++:
int array1[5];
int array2[3];
int array3[8];



dann einfach durchkopieren


C++:
int i;
for(int i=0;i<8;++i)array3[i]=i<5?array1[i]:array2[i];


oder halt nen memcpy nehmen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 26.05.2004 um 13:32 Uhr von Windalf editiert.
 
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: