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;
|
|