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 8

    ich 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


  • Mod

    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.


Anmelden zum Antworten