Przykładowa realizacja dla i=7;
1. i nie jest równe n więc idziemy dalej
2. j=f(8)
3. a[7](w tym przypadku trójka)<a[f(8)] zwróć i; Jeżeli nie zwróć j;
3.1 ---> f(8)
3.2 ---> j=f(9)
3.3 ---> a[8](w tym przypadku 11)<a[f(9)] zwróć i; Jeżeli nie zwróć j;
3.3.1 ---> f(9)
3.3.2 ---> j=f(10)
3.3.3 ---> a[9](w tym przypadku 20]<a[f(10)] zwróć i; Jeżeli nie zwróć j;
3.3.3.1 ---> f(10)=10
I teraz cofamy bo mamy już konkretną wartość:
(a[9]=20)<a[10]=15) ---> zwraca j czyli 10;
(a[8]=11<a[10]=15) ---> zwraca i czyli 8;
(a[7]=3<a[8]=11) ---> zwraca i czyli 7;
Im mniejsze i tym więcej porównań, zresztą jak sam zauważyłeś n-i;