Ez az algoritmus hiányos, nem?
Ezt elég nehéz kibogarászni, hogy mit is csinál, pedig csak pár sor.
A lo<= hi elvárja, hogy legalább 3 elem legyen a tömbben.
Ha nem teljesül, akkor null-t kapunk vissza. Tegyük fel, hogy teljesül.
Pontosan 3 elemnél
lo=1
hi=1
mid=1
Első if-ben
a[1]<a[0]
Ha ez igaz, akkor hi=0 és nem fut le újra a ciklus, hanem kilép és null-t ad vissza.
Szóval biztos, hogy tök hülyeség az egész. Ennél tovább nem is érdemes nézni :)
"azt se értem minek kell a mid-et így felírni,mikor simán lehetne (lo+hi)/2 ... ugyanaz"
Szerintem igazad van.
Amúgy az is elég furcsa, hogy egy tömb indexet fog visszaadni, és Integer a visszatérési érték int helyett.
Gyanítom ennek az az oka, hogy null-t tudjon visszaadni, holott dobhatni exception-t is, vagy visszaadhatna -1-et.
Szerintem ahol ezt találtad, oda ne menjél többet. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!