Dein Ansatz ist nicht verkehrt. Eine funktionierende Implementierung in Java sieht folgendermaßen aus:
private static int find_max(final int[] A, int a, int b) {
if (b - a == 1) {
if (A[a] > A[b]) {
return A[a];
} else {
return A[b];
}
} else if (a == b) {
return A[a];
}
return Math.max(find_max(A, a, (a + b) / 2), find_max(A, (a + b) / 2 + 1, b));
}
Die Funktion kannst Du wie folgt aufrufen:
public static void main(final String... args) {
final int[] array = { 1, 7, 6, 9, 1, 2, 8 };
System.out.println(find_max(array, 0, array.length - 1));
}
Deine Aufgabe ist es nun, daraus Pseudo-Code zu formulieren :-) Das Prinzip passt!