Algorytmy i struktury danych · Middle · Pytanie 14 z 75
Dlaczego w wielu językach zaleca się mid = lo + Math.floor((hi - lo) / 2) zamiast (lo + hi) / 2?
- ✓Poprawna odpowiedź:
lo + himoże przepełnić liczbę o stałej szerokości - 2Dzielenie jest na procesorze wolniejsze od odejmowania
- 3Pierwsza forma zawsze zaokrągla w górę
Wyjaśnienie
W Javie czy C++ z 32-bitowymi int lo + hi może przekroczyć maksimum i stać się ujemne. Liczby w JavaScripcie to double, więc dla indeksów tablicy to nie jest praktyczny problem, ale warto znać ten nawyk.