The best possible time complexity for finding Fibonacci numbers using an algorithm is \( O(\log n) \).
This can be achieved using a method known as matrix exponentiation, which relies on the relation of Fibonacci numbers to matrix multiplication. The Fibonacci sequence can be expressed using matrix exponentiation as follows:
\[ \begin{bmatrix} F(n) \ F(n-1) \end{bmatrix}
\begin{bmatrix} 1 & 1 \ 1 & 0 \end{bmatrix}^{n-1} \begin{bmatrix} F(1) \ F(0) \end{bmatrix} \]
By exponentiating the matrix in \( O(\log n) \) time, you can compute the n-th Fibonacci number efficiently.
However, if you're using a naive recursive approach, the time complexity would be \( O(2^n) \), and if you're using dynamic programming or iterative methods, it would be \( O(n) \).
In summary, the most efficient algorithm in terms of time complexity for computing Fibonacci numbers is \( O(\log n) \).