Se i dati di MyArray sono quelli allora si può evitare la ricerca.
MyArray[10]={5,10,20,30,40,50,60,70,80,90};
MyArray[0] = 5
MyArray[1] = 10
MyArray[2] = 20
MyArray[3] = 30
MyArray[4] = 40
MyArray[5] = 50
MyArray[6] = 60
MyArray[7] = 70
MyArray[8] = 80
MyArray[9] = 90
aNumber = 38
min = aNumber/10 = 3
max = aNumber/10 + 1 = 4
MyArray[min]
MyArray[max]
Sembra funzionare
Provo con 7
aNumber = 7
min = aNumber/10 = 0
max = aNumber/10 + 1 = 1
Sembra funzionare
Provo con 2
aNumber = 2
min = aNumber/10 = 0
max = aNumber/10 + 1 = 1
Funziona come per aNumber = 7
mmm.. se fossero così pochi i dati potresti anche fare uno switch case
che è molto rapido in esecuzione.
Sicuramente i dati nell'array non sono quelli reali per cui vai di ricerca dicotomica.
Se fai come dice gpb01 e usi i puntatori e una funzione ricorsiva dovresti ottenere il massimo della velocità
possibile, almeno io un altro modo più rapido non lo conosco.
Ciao.