Hacer coincidir el valor con el rango de valores más cercano con una complejidad mínima

Encontré un problema con el que necesito ayuda, supongamos que tengo un conjunto de datos que consiste en claves (enteros) y valores (enteros también). Necesito poder, dado algún valor de una clave, encontrar el rango mínimo de claves al que pertenece (es decir, encontrar las claves mayores y menores más cercanas) y luego devolver el valor coincidente mediante interpolación. Me preguntaba de qué manera me permitiría hacer esto en el tiempo más rápido (la complejidad del espacio es mucho menos importante). Además, la eliminación es irrelevante y todos los valores se dan al inicio (podemos suponer que no se agregarán más valores después del inicio). Mi énfasis está en el tiempo de búsqueda, en lugar de la inserción.

La solución más básica sería mantener una matriz ordenada de claves y usar la búsqueda binaria en ella, hasta que encuentre la clave de entrada o encuentre dos elementos adyacentes que sean mayores y menores que la clave de entrada. Esta opción tomaría O (log n) para inserción y búsqueda. Me preguntaba si hay algo mejor.

¡Gracias!

Respuesta 1

Tengo un problema extraño en uno de mis proyectos. Estoy tratando de ejecutar alguna prueba JUnit en un entorno OSGi (las pruebas están en un fragmento alojado por un paquete osgi; la operación se inicia con el "JUnit ...

He decidido eliminar anuncios para aquellos usuarios que tienen una aplicación específica instalada en su teléfono. Digamos que tengo una aplicación con el nombre del paquete com.android.samplead y otra aplicación llamada com.android.removead. Si ...

Esta es una pregunta de continuación a mi pregunta anterior sobre la especificación de múltiples esquemas en Java utilizando jooq para interactuar con H2. Mi prueba H2 DB actualmente tiene 2 esquemas, PUBLIC y INFORMATION_SCHEMA. ...

Tengo un JCombobox cuyo contenido se rellena de esta manera: List <MyClass> l = getList (); para (MyClass ll: l) combo.addItem (ll.toString ()); combo.setSelectedIndex (0); Todo está bien hasta que hago clic ...