Suppongo che tu voglia un costo basso ammortizzato , cioè la pre-elaborazione è accettabile.
Stai cercando di trovare un elemento dati con proprietà specifiche. Non lasciarti ingannare dal fatto che la proprietà è espressa come quattro diversi confronti numerici. È davvero una proprietà dell'elemento intero . Ciò significa che devi ordinare i tuoi dati in base a una misura che tiene conto delle condizioni tutte e poi cerca prima la misura combinata .
In questo caso, cerca una coppia con 10 < x < 12 e 3 < y < 5 significa cercare una coppia dove 13 < x + y < 17. Potresti semplicemente ordinare la tua lista di coppie e la loro somma e trovare rapidamente tutti i candidati che soddisfano la condizione combinata.
Non tutti soddisfano le condizioni individuali, ma puoi definire un criterio di ordinamento secondario che richiede ad es. il valore x in considerazione. Questo è spesso abbastanza buono da poter essere risolto con l'ordinamento standard di un algoritmo di ricerca, senza definire strutture di dati collegate bidimensionali specifiche dell'attività.
(nota che è abbastanza veloce per i tuoi scopi dipende da quali sono i tuoi scopi. È del tutto possibile che tu abbia bisogno di una preelaborazione più complicata per raggiungere il tuo obiettivo aziendale. è meglio modificare gli algoritmi esistenti e semplici piuttosto che introdurre uno specifico di un compito, se non altro perché gli ordinamenti e le ricerche di librerie standard sono probabilmente ottimizzati molto meglio di quanto si possa fare da soli.)