Nachdem ich nun schon oft genug mal hier rein gestöbert habe, bin nun ich es, der eine Frage hat.
Und zwar geht es um das Thema Rekursion.
Ich dachte, ich hätte es verstanden, doch nun kann ich diesen Code(Merge Sort Algorithmus) nicht nachvollziehen, wie die Rekursion hier funktioniert.
Hier der Code(funktioniert tadelos):
Kann mir hier jemand erklären, wie der rekursive Aufruf nun denn genau funktioniert? Rekursion bedeutet doch, die Methode(z.B. "merge_sortierung") innerhalb der Methode erneut aufzurufen. Verstehe aber ehrlich gesagt nicht, wieso die Methode funktioniert...springt der Compiler im Prinzip beim Aufruf der rek. Methode nicht immer wieder an den Anfang, sodass der Code drunter nicht ausgeführt wird?
Bedanke mich für jede Hilfe
Und zwar geht es um das Thema Rekursion.
Ich dachte, ich hätte es verstanden, doch nun kann ich diesen Code(Merge Sort Algorithmus) nicht nachvollziehen, wie die Rekursion hier funktioniert.
Hier der Code(funktioniert tadelos):
Java:
public static void merge_sortierung(int A[],int p, int r){
int q;
if(p<r){
q=(p+r)/2;
merge_sortierung(A,p,q);
merge_sortierung(A,q+1,r);
merge(A,p,q,r);
}
}
public static void merge(int A[],int p, int q, int r){
int B[]=A.clone();
int i,j,k;
i=p;
j=q+1;
k=p;
while(i<=q && j<=r){
if(B[i]<=B[j]) A[k++]=B[i++];
else A[k++]=B[j++]; }
while(i<=q) A[k++]=B[i++];
B=null;
}
}
Kann mir hier jemand erklären, wie der rekursive Aufruf nun denn genau funktioniert? Rekursion bedeutet doch, die Methode(z.B. "merge_sortierung") innerhalb der Methode erneut aufzurufen. Verstehe aber ehrlich gesagt nicht, wieso die Methode funktioniert...springt der Compiler im Prinzip beim Aufruf der rek. Methode nicht immer wieder an den Anfang, sodass der Code drunter nicht ausgeführt wird?
Bedanke mich für jede Hilfe