Witam,
Zacząłem się uczyć algorytmów i C++ z książki "Algorytmy struktury danych i techniki programowania"
Mam zadanie 2.1: Musze napisać program, który za pomocą rekurencji odwróci tablicę liczb całkowitych.
Napisałem program, działa, jednak mój tok rozumowania był inny niż autora - moja funkcja jest inna od przykładowej, czy mógłby ktoś z szanownych forumowiczów wytknąć błędy w mojej implementacji?
Z góry dziękuje.
Moja funkcja:
void obroctab(int *tab, int rozmiar, int max)
{
int z = tab[rozmiar];
if(rozmiar > 0) obroctab(tab, (rozmiar - 1), max);
int w = rozmiar - max;
if(w < 0) w = w*-1;
tab[w] = z;
}
Rozwiązanie z książki:
void swap(int& a, int& b)
{
int temp=a;
a=b;
b=temp;
}
void odwroc(int *tab, int left, int right)
{
if(left<right)
{
swap(tab[left],tab[right]);
odwroc(tab,left+1,right-1);
}
}