Buenos días elnapster, en lo personal te recomiendo que utilices funciones hash para guardar cierto registro en cierta dirección, así se te facilitará mucho la búsqueda... mira por ejemplo:
Si tenemos la clave 245643 y el tamaño máximo de registros es 997, entonces si aplicamos la función hash modular:
245643 mod 997= 381
381 es la dirección física en la que debe estar el registro con la clave 245643, así que ahí lo escribes
Cuándo vayas a búscar el registro con la clave 245643 aplicas nuevamente la función hash modular:
245643 mod 997= 381 y así te llevará directamente al registro buscado
Claro que habrá algunos casos en los que una clave te dé la misma dirección que otra u otras, para eso tenemos la RESOLUCIÓN DE COLISIONES, la más simple se llama PRUEBA LINEAL que consiste en que si una clave te dá la misma dirección de otra, ponerla directamente enseguída de la dirección que le tocaba.
Las funciones hash más básicas son:
-Aritmética modular
-Plegamiento
-Mitad al cuadrado o del cuadrado
y los métodos para resolución de colisiones más básicas son:
-Prueba lineal
-Prueba cuadrática
-Doble direccionamiento
-Por encadenamiento
Búsca más información en libros y en internet, seguro que encontrarás algo, también te mando algunos laboratorios que había hecho para búsqueda por bloques, por índices y por algunas funciones hash.