Rekurencyjne szukanie min i max tablicy

0

Więc tak, jest pewien trywialny algorytm, który mam napisany iteracyjne. Rzecz w tym, że mam napisać algorytm, który robi to samo rekurencyjnie. I tutaj pojawia się problem.

Treść zadania:

Dana jest n-elementowa tablica liczb całkowitych (n >= 2). Należy znaleźć indeks największej i najmniejszej wartości.

Bardzo proste rozwiązanie iteracyjne:

	const int n = 5; //oczywiście może tutaj być coś dowolnego >= 2
	int tab[n];

	int maxIndex = 0;
	int minIndex = 0;

	for (int i = 1; i < n; i++)
	{
		if (tab[i] > tab[maxIndex]) maxIndex = i;
		else if (tab[i] < tab[minIndex]) minIndex = i;
	}

No i teraz pytanie, jak ugryźć rekurencyjny algorytm realizujący to zadanie? Myślałem nad dzieleniem tablicy na coraz mniejsze elementy, tylko pytanie co dalej (no i jak w takim wypadku poradzić sobie, gdy liczba elementów jest nieparzysta).

0

W takim dziwnym pseudokodzie:

findMax(tab[0:n-1])
{
    temp = findMax(tab[0:n-2])
    if(tab[n-1] > tab[temp]) 
        return n-1;
    else 
        return temp;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1