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…
Související články
Související epizody CZ Podcastu
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.