b'\n_START_ARTICLE_\nDvoji\xc5\xa1ko iskanje\n_START_SECTION_\nOpis\n_START_PARAGRAPH_\nAlgoritem na za\xc4\x8detku za interval preiskovanja vzame celotno tabelo, nato pa v vsakem naslednjem koraku vzame element na sredini intervala in ga primerja z iskanim klju\xc4\x8dem. \xc4\x8ce je element ve\xc4\x8dji od klju\xc4\x8da, potem element postane nova zgornja meja intervala, sicer postane nova spodnja meja. Iskanje se zaklju\xc4\x8di, ko se naleti na iskani element, ki je enak klju\xc4\x8du. \xc4\x8ce takega elementa ni, pa se iskanje zaklju\xc4\x8di, ko se zgornja in spodnja meja intervala preiskovanja prekrijeta.\n_START_SECTION_\nZahtevnost\n_START_PARAGRAPH_\nV najbolj\xc5\xa1em primeru (\xc4\x8de je iskani element na srednjem indeksu tabele) je \xc4\x8dasovna kompleksnost algoritma ._NEWLINE_Iskanje poteka tako, da se pri vsakem koraku izlo\xc4\x8di polovica podatkov, zato je \xc4\x8dasovna zahtevnost dvoji\xc5\xa1kega iskanja , kjer je  dvoji\xc5\xa1ki logaritem.\n_START_SECTION_\nRekurzivno\n_START_PARAGRAPH_\nAlgoritem je mogo\xc4\x8de zapisati na ve\xc4\x8d na\xc4\x8dinov, najbolj enostavno z uporabo rekurzije._NEWLINE_Ko prvi\xc4\x8d pokli\xc4\x8demo funkcijo, ji podamo tabelo z vrednostmi, ki so razvr\xc5\xa1\xc4\x8dene v nara\xc5\xa1\xc4\x8dajo\xc4\x8dem vrstnem redu, iskano vrednost ter prvi in zadnji indeks v tabeli._NEWLINE_Algoritem nato poi\xc5\xa1\xc4\x8de srednjo vrednost, se odlo\xc4\x8di v kateri podmno\xc5\xbeici je re\xc5\xa1itev in opravi rekurzivni klic s to podmno\xc5\xbeico (tabelo)._NEWLINE_int dvojiskoIskanje(int tabela[], int kljuc, int levi, int desni){_NEWLINE_  if (levi > desni)_NEWLINE_    // Tabela je prazna, kljuc ni bil najden_NEWLINE_    return -1;_NEWLINE__NEWLINE_  else_NEWLINE_    {_NEWLINE_      // Izra\xc4\x8dunaj indeks srednjega elementa_NEWLINE_      int srednji = (levi + desni) / 2;_NEWLINE_     _NEWLINE_      if (kljuc < tabela[srednji])_NEWLINE_        // Klju\xc4\x8d je v spodnji podmno\xc5\xbeici_NEWLINE_        return dvojiskoIskanje(tabela, kljuc, levi, srednji - 1);_NEWLINE__NEWLINE_      else if (kljuc > tabela[srednji])_NEWLINE_        // Klju\xc4\x8d je v zgornji podmno\xc5\xbeici_NEWLINE_        return dvojiskoIskanje(tabela, kljuc, srednji + 1, desni);_NEWLINE__NEWLINE_      else_NEWLINE_        // Klju\xc4\x8d je najden_NEWLINE_        return srednji;_NEWLINE_    }}\n_START_SECTION_\nIterativno\n_START_PARAGRAPH_\nRavno tako je algoritem za dvoji\xc5\xa1ko iskanje mogo\xc4\x8de napisati iterativno, z uporabo dveh spremenljivk, glede na kateri se kr\xc4\x8di podmno\xc5\xbeica za iskanje._NEWLINE_int dvojiskoIskanje(int tabela[], int kljuc, int levi, int desni){_NEWLINE_  while (levi <= desni) _NEWLINE_  {_NEWLINE_      //Izra\xc4\x8dunaj indeks srednjega elementa_NEWLINE_      sredina = (levi + desni) / 2;_NEWLINE__NEWLINE_      if (kljuc > tabela[sredina])_NEWLINE_          // Klju\xc4\x8d je v zgornji podmno\xc5\xbeici_NEWLINE_          levi = sredina + 1;_NEWLINE__NEWLINE_      else if (kljuc < tabela[sredina])_NEWLINE_          // Klju\xc4\x8d je v spodnji podmno\xc5\xbeici_NEWLINE_          desni = sredina - 1;_NEWLINE__NEWLINE_      else_NEWLINE_          // Klju\xc4\x8d je najden_NEWLINE_          return sredina;_NEWLINE_  }_NEWLINE_  //Klju\xc4\x8da ni v tabeli_NEWLINE_  return -1;}'