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