Witam,
Naszło mnie ostatnio coś na zabawę w próby sprawdzania, który kod wykona się szybiej.
Dla przykładu stworzyłem dwie funkcje, które obliczają daną potęge:
int potega(int x, int n){
int wynik = 1;
for(int i = 1; i <= n; i++){
wynik = wynik * x;
}
return wynik;
}
int potega2(int x, int n, int wynik, int licznik){
if(licznik == n){
return wynik;
}
else{
wynik = wynik * x;
licznik++;
return potega2(x, n, wynik, licznik);
}
}
Moje pytanie dotyczy szybkości działania tych kodów. Który z teoretycznego punktu widzenia wykona się szybciej(wiem, że w dzisiejszych czasach taka błahostka nie ma znaczenia)?
Wydaje mi się, że funkcja druga wykorzystuje więcej pamięci RAM, ale jaki będzie rzeczywisty czas wykonania danej fukcji dla tych samych wartości? Nie chodzi mi o dokładne wartości, tylko o to, która zrobi to szybciej, a która wolniej.
Pozdraiwam!