Code: Alles auswählen
public int algo(int[] a){ int l = a.length;
if (l==1)
return a[ l − 1]; else {
} }
int i = l / 2;
return algoRec(a, 0, i − 1) +
algoRec(a, i, l − 1);
private int algoRec(int[] a,int i,int j){ int out =0;
if(i==j) {
o u t += a [ i ] ; }
else if (j−i == 1){
o u t += a [ i ] + a [ j ] ;
} else{
int s = (j−i)/2;
o u t += a l g o R e c ( a , i , i + s ) ;
out += algoRec(a,i + s + 1,j);
}
return out ; }
Müssen wir nicht - wenn wir den Korrektheitsbeweis für algo (nicht für den rekursiven Aufruf algorec) durchführen , so etwas schreiben wie : Eine natürliche Zahl t (vielleicht auch ohne Variable?) Mein Problem ist, dass es um die Spezifikation von algo geht und out wird ausschließlich in algorec verwendet. Kann man solche Feinheiten einfach ignorieren, oder sollte man bei der Variablendeklaration so streng sein.
Danke und Gruß