sortieren
-
hi leute
sorry dass ich nerve aber es ist wichtig
es geht um mein projekt in der schule
und zwar:
ich habe ein 2 dimensionales array "cText"welches zeilen enthält, die aus einem textdokument ausgesen wurden.
dazu habe ich ein 2 dimensionales array welches die dazugehörigen zahlen enthält und ich möchte die zeilen nach den zahlen rdnen .... wie geht das?diese zeilen nach diesen zahlen absteigend sortieren
(9,8,7,6,5,4,..´)
asöiubhaösoihb 4
asöfiugbaösdoifhb 2
asödofhaödsfioh 7
asöäodifhböaosidb 9
ölbjöujbaf 5
öliublöufffffff 1
lhjbvlbrföiouawenjbf 8ich habe es schon versucht aber meine lösung muss immer zweimal ordnen bevor alles geordnet ist.... beim ersten mal ist immer noch di erste zahl gleich wie vor dem sortieren. warum ist das so und wie schaff ich es besser????
for(n=1;n<101;n++) { if(ordnung[n-1]<ordnung[n]) { u=ordnung[n]; ordnung[n]=ordnung[n-1]; ordnung[n-1]=u; for(i=0;i<90;i++) { cHilf[i]=cText[n][i]; cText[n][i]=cText[n-1][i]; cText[n-1][i]=cHilf[i]; } n=1; } }
-
for(n=0;n<101;n++) { if(ordnung[n]<ordnung[n+1]) { u=ordnung[n+1]; ordnung[n+1]=ordnung[n]; ordnung[n]=u; for(i=0;i<100;i++) { cHilf[i]=cText[n+1][i]; cText[n+1][i]=cText[n][i]; cText[n][i]=cHilf[i]; } n=n-2; } }
-
das obige habe ich auch schon versucht
-
Gleiche Frage, gleiche Antwort. Wieso machst du mehrere Threads mit der gleichen Frage und ein paar Stunden Abstand auf?
anderer Thread ist hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-268291.html
-
Ich hoffe mal, bei dir an der Schule geht es nicht so chaotisch zu, wie du hier neue Threads zum gleichen Thema aufmachst.
In einem aktuelle Parallelthread gibt es doch ein schönes einfaches Beispiel zum Sortieren:void bubblesort(int *array, int length) { int i, j; for (i = 0; i < length; ++i) { for (j = 0; j < length - i - 1; ++j) { if (array[j] > array[j + 1]) { int tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } } }
Wie wärs, davon zu lernen für deinen Anwendungsfall?
void bubblesort(int *ordnung, char **cText,int length) { int i, j; for (i = 0; i < length; ++i) { for (j = 0; j < length - i - 1; ++j) { if (ordnung[j] > ordnung[j + 1]) { int tmp = ordnung[j]; char *stmp = cText[j]; ordnung[j] = ordnung[j + 1]; ordnung[j + 1] = tmp; cText[j] = cText[j + 1]; cText[j + 1] = stmp; } } } }
Ich hoffe, du erkennst wenigstens die Systematik und den Aufruf dieser Funktion für deinen Anwendungsfall solltest du allein hinkriegen.