Rozdiel medzi lineárnym a binárnym vyhľadávaním
Obsah
Lineárne vyhľadávanie a binárne vyhľadávanie sú dve metódy, ktoré sa používajú v poliach vyhľadávanie prvky. Vyhľadávanie je proces nájdenia prvku v zozname prvkov uložených v akomkoľvek poradí alebo náhodne.
Hlavný rozdiel medzi lineárnym vyhľadávaním a binárnym vyhľadávaním spočíva v tom, že binárne vyhľadávanie vyžaduje menej času na vyhľadanie prvku zo zoradeného zoznamu prvkov. Z toho vyplýva, že účinnosť metódy binárneho vyhľadávania je vyššia ako lineárne vyhľadávanie.
Ďalším rozdielom medzi nimi je, že existujú predpoklady pre binárne vyhľadávanie, t.j. prvky musia byť triedený zatiaľ čo pri lineárnom vyhľadávaní takéto predpoklady neexistujú. Aj keď obe metódy vyhľadávania používajú rôzne techniky, ktoré sú uvedené nižšie.
- Porovnávacia tabuľka
- definícia
- Kľúčové rozdiely
- záver
Porovnávacia tabuľka
Základ pre porovnanie | Lineárne vyhľadávanie | Binárne vyhľadávanie |
---|---|---|
Časová zložitosť | O (N) | O (log 2 N) |
Najlepší čas na prípad | Prvý prvok O (1) | Stredový prvok O (1) |
Predpoklad pre pole | Nevyžaduje sa | Pole musí byť zoradené |
Najhorší prípad pre N počet prvkov | Vyžaduje sa N porovnaní | Môže sa uzavrieť iba po prihlásení2 N porovnania |
Môže byť implementovaný na | Zoznam polí a polí | Nie je možné vykonať priamo v prepojenom zozname |
Vložte operáciu | Ľahko vložený na koniec zoznamu | Vyžadujte spracovanie, aby ste ho mohli vložiť na svoje správne miesto, aby ste udržali triedený zoznam. |
Typ algoritmu | Iteratívny charakter | Rozdeľte a podmante si prírodu |
užitočnosť | Ľahko sa používa a nie sú potrebné žiadne objednané prvky. | V každom prípade by mal byť zložitý algoritmus a prvky usporiadané. |
Riadky kódu | menej | viac |
Definícia lineárneho vyhľadávania
Pri lineárnom vyhľadávaní sa každý prvok poľa získa jeden po druhom v logickom poradí a skontroluje sa, či je alebo nie je požadovaným prvkom. Hľadanie bude neúspešné, ak sú prístupné všetky prvky a požadovaný prvok sa nenájde. V najhoršom prípade je možné, že číslo priemerného prípadu bude musieť skenovať polovicu veľkosti poľa (n / 2).
Preto možno lineárne vyhľadávanie definovať ako techniku, ktorá postupne prechádza po poli na lokalizáciu danej položky. Program uvedený nižšie ilustruje vyhľadávanie prvku poľa pomocou vyhľadávania.
efektívnosť lineárneho vyhľadávania
Časová náročnosť alebo počet porovnaní vykonaných pri prehľadávaní záznamu v prehľadávacej tabuľke určuje účinnosť techniky. Ak sa požadovaný záznam nachádza na prvej pozícii tabuľky vyhľadávania, vykoná sa iba jedno porovnanie. Ak je požadovaný záznam posledný, musí sa vykonať porovnanie. Ak má byť záznam niekde vo vyhľadávacej tabuľke, v priemere bude počet porovnaní (n + 1/2). Najhorší prípad účinnosti tejto techniky je O (n) znamená poradie vykonania.
Program C na vyhľadávanie prvku pomocou techniky lineárneho vyhľadávania.
#include Binárne vyhľadávanie je mimoriadne efektívny algoritmus. Táto vyhľadávacia technika spotrebúva pri hľadaní danej položky menej času pri minimálnom možnom porovnaní. Ak chcete vykonať binárne vyhľadávanie, musíme najprv zoradiť prvky poľa. Logika tejto techniky je uvedená nižšie: Môžu nastať tri prípady: Rovnaké kroky opakujte, až kým sa v oblasti vyhľadávania nenájde element alebo sa nevyčerpá. V tomto algoritme sa zakaždým zmenšuje oblasť vyhľadávania. Preto je počet porovnávaní nanajvýš log (N + 1). Výsledkom je efektívny algoritmus v porovnaní s lineárnym vyhľadávaním, ale pole musí byť pred vykonaním binárneho vyhľadávania zoradené. Program C nájsť prvok s technikou binárneho vyhľadávania. #include V závislosti od aplikácie môžu byť užitočné algoritmy lineárneho aj binárneho vyhľadávania. Ak je matica dátová štruktúra a prvky sú usporiadané v zoradenom poradí, uprednostňuje sa binárne vyhľadávanie rýchlyvyhľadávania. Ak je prepojeným zoznamom dátová štruktúra bez ohľadu na usporiadanie prvkov, prijme sa lineárne vyhľadávanie z dôvodu nedostupnosti priamej implementácie algoritmu binárneho vyhľadávania. Typický binárny algoritmus vyhľadávania nie je možné použiť na prepojený zoznam, pretože prepojený zoznam má dynamický charakter a nie je známe, kde je stredný prvok skutočne priradený. Preto existuje požiadavka navrhnúť variáciu algoritmu binárneho vyhľadávania, ktorá môže pracovať aj na prepojenom zozname, pretože binárne vyhľadávanie je pri vykonávaní rýchlejšie ako lineárne vyhľadávanie.Definícia binárneho vyhľadávania
záver