En el siguiente grafico senalamos con ( * ) los valores enteros que formen la secuencia de Fibonacci.
*
--|-*-|-*-|-*-|-*-|---|-*-|---|---|-*-|---|---|---|---|-*-|---|---|---|---|---|---|---|-*-|---|---|-.........
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Numeros enteros
0 1 3 4 5 6 7 8 Indices de Fibonacci
2
Observar que los Numeros de Fibonacci van dejando intervalos de numeros
enteros cada vez mayores a medida que el indice crece.
R1 R2 R3 Ri Rk Rn
...------------------.......--------.............--------.......--------...............--------....
| K1 | K2 | K3 | | Ki | | Kk | | Kn | | | n slots
...------------------.......--------.............--------.......--------...............--------....
F(k-1) F(k) F(k+1)
|<---------------------->| |<--------------------------------->|
subarchivo menor subarchivo mayor
Se busca, en un archivo secuencial G, con claves ordenadas en forma creciente,
por un registro Ri, tal que Ki = K
La variable n es la cantidad de registros del archivo.
La variable K es la clave que se busca.
La variable i es la unica clave de salida, e indicara 0, si no existe la
clave K en el archivo, y la posicion del registro, si la clave K existe en el archivo.
Se asume que F(k) + m = n + 1. O sea, m = n + 1 - F(k).
1 2 3 q p i r n n+1 s
R1 R2 R3 Rq Rp Ri Rk Rn
...------------------.......--------.......--------...........--------.............--------.......--------..............--------.......
| K1 | K2 | K3 | | Kq | | Kp | | Ki | | Kk | | Kn | | | n slots
...------------------.......--------.......--------...........--------.............--------.......--------..............--------.......
q = F(k-3) p = F(k-2) i = F(k-1) r = F(k) s = F(k+1)
Ejmeplo n = 33
k = 8
m = 33 + 1 - 21 = 13
F(k) = F(8) = 21
F(k-1) = F(7) = 13
F(k-2) = F(6) = 8
F(k-3) = F(5) = 5
F(k-4) = F(4) = 3
F(k-5) = F(3) = 2
F(k-6) = F(2) = 1
*---*
|2 1| Primera comparacion
*---*
| |
+----------------------+ +----------------------+
| |
*---* *---*
|1 3| |2 9| Segunda comparacion
*---* *---*
| | | |
+----------+ +----------+ +----------+ +----------+
| | | |
*---* *---* *---* *---*
| 8 | |1 8| |2 6| |3 2| Tercera comparacion
*---* *---* *---* *---*
| | | | | | | |
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
| | | | | | | |
*---* *---* *---* *---* *---* *---* *---* *---*
| 5 | |1 1| |1 6| |2 0| |2 4| |2 8| |3 1| |3 3| Cuarta comparacion
*---* *---* *---* *---* *---* *---* *---* *---*
| | | | | | | | | | |
+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+
| | | | | | | | | | |
*---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---*
| 3 | | 7 | |1 0| |1 2| |1 5| |1 7| |1 9| |2 3| |2 5| |2 7| |3 0| Quinta comparacion
*---* *---* *---* *---* *---* *---* *---* *---* *---* *---* *---*
| | | | | |
+-+ 4 +-+ +-+ +-+ +-+
| | | | |
*---* *---* *---* *---* *---*
| 2 | | 6 | | 9 | |1 4| |2 2| Sexta comparacion
*---* *---* *---* *---* *---*
|
+-+
|
*---*
| 1 | Septima comparacion
*---*