matematykaszkolna.pl
c++ Tomekkk: Mam pytanie dotyczące c++ programu wykonującego rekurencyjne podnoszenie do potęgi . Oto program #include<iostream> using namespace std ; int Potega(int a, int n){ // deklaracja funkcji w c++ if( n == 1 ) return a; if( n % 2 == 0 ){ int p = Potega(a, n/2); return p * p; } else { int p = Potega(a,(n−1)/2); return p*p*a; } } int main(){ int a,p; cout <<"Podaj liczbe: "; cin >> a ; cout<<"Podaj potege:"; cin>>p; cout<<"Twoj wynik wynosi : "<<Potega(a,p); return 0; } I moje pytanie brzmi tak : co jest w tym przypadku złożonością optymistyczną i pesymistyczną ?
31 maj 20:05
wmboczek: algorytm rekurencji wykona się log2n razy zakładając istotność tylko mnożenia optymistycznie wykonamy 1 mnożenie p*p w kroku pesymistycznie wykonamy 2 mnożenia p*p*a
31 maj 20:27