dagblog.
← Archiv

Programátorská hádanka


Mám tady jednu progrmátorskou hádanku, která je velice zajímavá. Takže kdo dokáže najít chybu v následujícím jednoduchém kódu, který realizuje hledání půlením intervalů (pole je setřízené).

01 public static int binarySearch(int[] a, int key) {

02 int low = 0;

03 int high = a.length - 1;

04 

05 while (low <= high) {

06 int mid = (low + high) / 2;

07 int midVal = a[mid];

08 

09 if (midVal < key)

10 low = mid + 1;

11 else if (midVal > key)

12 high = mid - 1;

13 else

14 return mid; // key found

15 }

16 return -(low + 1); // key not found.

17 }

 
 

Java2html

Přiznám se bez mučení, ja jsem na to nepřišel, není to tak jednoduché. Kdokoliv na to přijde má můj veškerý obdiv! Jenom dodám, že tenhle kód byl léta součásti API Javy…

Verze na Medium

Související články

Související epizody CZ Podcastu