Witam, mam problem z implementacją, rekurencyjnej wersji funkcji zwracającej najmniejszy element (funkcja ta, jest wykorzystywana w programie sortującym). Problem, istnieje, gdyż w wywołaniu rekurencyjnym funkcji zawsze na początku zmiennej
indeks_min
przypisywana jest wartość zmiennej indeks_pocz
Przez co zmienna indeks_min, któa jest liczona poprawnie, dostaje cały czas ta samą wartość. Nie mam pomysłu jak obejść to przypisanie (ewentualnie co zwrócić zamiast zmiennej <code class="cpp">indeks_min
Oto kod:
#include<iostream>
using namespace std;
int indeks_najmniejszego(const int a[], int indeks_pocz, int liczba_elementow)
{
int min = a[indeks_pocz], indeks_min = indeks_pocz;
int indeks = indeks_pocz + 1;
if (indeks_pocz == liczba_elementow)
return indeks_pocz;
if (indeks < liczba_elementow)
{
if (a[indeks] < min)
{
min = a[indeks];
indeks_min = indeks;
indeks_pocz = indeks;
cout << indeks_min << endl;
//min jest najmniejszym elementem spośród wartości
//od a[indeks_pocz] do a[indeks]
}
return indeks_najmniejszego(a, indeks_pocz, liczba_elementow - 1);
}
}
int main( )
{
int a[4] = { 4 , 1 , 3 , 2};
cout << indeks_najmniejszego(a, 0, 4) << endl;
getchar( );
return 0;
}