hiperformance71:
Del tue esempio, ho capito bene, esegue il primo if, se vero controlla il secondo, credi possa essere più efficiente dell'uso di un'unico if con && ? farò qualche test al riguardo.
per ora, grazie dei consigli!
Non ne sono sicuro perchè sia il compilatore che il C standard in genere ottimizza gli if con and && e quindi spezzarlo in due forse già lo fa il compilatore.
La ricerca binaria o dicotomica di solito però serve per cercare esattamente un valore nell'array. Quello che serve a te mi sembra una cosa un pò diversa.
Però ottimizzazioni di sicuro possono essere fatte.
Mi viene in mente che il valore che tu cerchi prima di tutto deve essere maggiore di uno di quei valori. Allora visto che l'array è già ordinato la ricerca dicotomica può essere un inizio. Cercare per prima cosa la prima cella il cui valore è minore o uguale a quello da cercare (sfruttando la ricerca binaria).
Partendo da metà array sai già se proseguire la ricerca a sinistra o a destra. Già questo ti dimezza l'array.