idee per velocizzare ricerca dati in array?

Dipende da come sono ordinati i dati nell'array. Se sono disordinati non credo puoi fare altro che cercare in ogni elemento.
L'array che tu metti nel tuo esempio è già ordinato. In quel caso si procede con ricerca dicotomica, ovvero parti da metà dell'array.

Se l'array è disordinato, nel tuo caso che vuoi fare una ricerca entro intervallo potresti spezzare l'if in due, solo se il valore è nel range per uno dei confronti allora verifichi anche l'altro estremo.
Sempre che il compilatore non abbia già ottimizzato quel if unico.

for (i=0; i<10; i++)
{ if (Valore_Ricercato > MyArray[ i ])
    if( Valore_Ricercato < MyArray[ i + 1 ] )
    {  Val_Ricercato_inf = MyArray[ i ]; 
    }
}