insertion sort



  • hallo. eine frage zu insertion sort, bzw. vielmehr zur gültigkeit von variabeln:

    void insertionsort(int feld[], int n){
    int i,j,next;
    for(i=0; i<n; i++)
    next=f[i];
    j=i-1; /* *2* */

    while( (j>=0)&&(next<f[j]) ) {
    f[j+1]=f[j];
    j=j-1;
    }
    f[j+1]=next; /* *1* */
    }

    wieso gilt and er mit *1* markierten stelle das j aus der while schleife und nicht das j aus der mit *2* markierten zeile?
    wird das äußere j durch die whileschleife nicht nur überschattet ist dann aber ab verlassend er whileschleife mit } wieder gültig?
    kann mir das jemand erklären?

    MfG
    the stu



  • hallo,
    Du meinst den Gültigkeitsbereich der Variable j.
    Dein Programm definiert lediglich eine Variable und deshalb wird die Variable auch nicht überschattet.Versuche mal folgendes:

    void main(void){
    int j=3;
    {
    int j=0;
    while(j<10){
    printf("%d",j);
    j++;
    }
    }
    printf("%d",j);
    }
    Die Ausgabe muesste sein: 01234567893
    BEachte die 3 am schluss!



  • aber an der stelle *2* initialisiere ich doch die variable, definiert hab ich die doch shcon vorher?!



  • da initialisierst du sie - ja.
    Und?
    Ich versteh das Problem nicht ganz.



  • habs gerade verstanden, alles klar, danke


Anmelden zum Antworten