// Find a maximum element in the array.
findMax(A)
findMaxHelper(A, 0, A.length)
findMaxHelper(A, left, right)
if (left == right - 1)
return A[left]
else
max1 = findMaxHelper(A, left, (right + left) / 2)
max2 = findMaxHelper(A, (right + left) / 2, right)
if (max1 > max2)
return max1
else
return max2
Мне сложно понять, что происходит в этом псевдокоде.
Может кто-нибудь помочь объяснить, что происходит в каждой строке. Мне нужно понять этот код, прежде чем я смогу ответить на вопросы.
Я знаю, что функция findMax вызывает вспомогательную функцию findMaxHelper, а затем findMaxHelper использует рекурсию. Кроме этого, я действительно этого не понимаю.