Warning
This page is located in archive.

Binární vyhledávání

Princip

Binární vyhledávání (také metoda půlení intervalu) je vyhledávací algoritmus pro nalezení zadané hodnoty v uspořádaném seznamu(poli) pomocí zkracování seznamu o polovinu v každém kroku. Binární vyhledávání najde medián, porovná jej s hledanou hodnotou a na základě výsledku se rozhodne o pokračování v horní nebo dolní části seznamu stejným způsobem.

Složitost

Binární vyhledávání je algoritmus s časovou složitostí O(log n).

Příklady

Napište metodu, která najde ve vstupním poli zadanou hodnotu. Metoda vrátí pozici hledané hodnoty,v případě nenalezení vrátí “-1”

static int Hledej (int[] pole, int hledani,int vlevo,int vpravo) {
 
        int pozice = -1;                            //pocatecni hodnota - neni prvek
        int stred = (vlevo+vpravo)/2;               //urceni stredu        
 
        if (pole[stred]==hledani) return stred+1;   //je uprostred
        if (vlevo==vpravo) return pozice;           //neni tam nikde - pole ma jeden prvek
        else{
            if (pole[stred]<hledani)                //budeme hledat v horni polovine pole
            {
                pozice=Hledej(pole,hledani,stred+1,vpravo);
                return pozice;
            }
            else                                    //budeme hledat v dolni polovine pole
            {
                pozice=Hledej(pole,hledani,vlevo,stred-1);
                return pozice;
            }
            }
 
        }
}

courses/a0b36pri/tutorials/10/binarni_vyhledavani.txt · Last modified: 2015/01/16 21:04 (external edit)