Jeśli dobrze to rozumiem, algorytm, który oblicza wartość rzeczywistej funkcji ma złożoność obliczeniową O ( g ( n ) ), jeśli zachowuje następujące warunki: Gdy obliczamy f z dokładnością δ, wymaga to rzędu g ( n ) kroków.
Co jednak jeśli mamy algorytm, który najpierw „znajdzie bardziej wydajny algorytm do obliczenia ”, a następnie oblicza f ?
Innymi słowy, co jeśli mamy algorytm który wykonuje następujące czynności:
Znajdź wydajny algorytm do obliczeń f .
użyj do obliczenia f .
W takim przypadku nie możemy już mówić o czasie obliczeniowej zajęłoby aby obliczyć na przykład dlatego, że całkowicie zależy od tego, czy algorytm już znalazł algorytm B . Innymi słowy, czas obliczeniowy wymagany do obliczenia f ( 5 ), jeśli 5 jest pierwszą liczbą obliczoną, jest znacznie większy niż czas obliczeniowy wymagany do obliczenia f ( 5 ) po obliczeniu już f ( 3 ) .
Moje pytanie brzmi: czy istnieje koncepcja / teoria dotycząca tego rodzaju algorytmu, który najpierw szuka innego algorytmu przed obliczeniem funkcji? W szczególności zastanawiam się nad analizą złożoności obliczeniowej takich algorytmów.