Algoritmus vyhledávání více položek se používá k nalezení všech výskytů určitého prvku v seznamu. Na rozdíl od jednopoložkových vyhledávacích algoritmů tento přístup sleduje vícenásobné výskyty cílového prvku a vrací seznam jejich pozic.
Jak to funguje
- Začněte od začátku seznamu.
- Iterujte každý prvek v seznamu.
- Porovnejte aktuální prvek s cílovou hodnotou.
- Pokud se aktuální prvek rovná cílové hodnotě, zaznamenejte jeho polohu.
- Pokračujte na další prvek a opakujte kroky 3-4.
- Po iteraci celého seznamu vraťte seznam zaznamenaných pozic.
Příklad
Uvažujme seznam celých čísel a chceme najít všechny výskyty čísla 23.
Seznam: {12, 23, 45, 23, 56, 23, 89, 90}
- Začněte od začátku: 12. Není požadované číslo.
- Přejít na další prvek: 23. Shoda nalezena, zaznamenejte pozici 1.
- Přejděte na další prvek: 45. Není požadované číslo.
- Přejít na další prvek: 23. Shoda nalezena, zaznamenejte pozici 3.
- Přejděte na další prvek: 56. Není požadované číslo.
- Přejít na další prvek: 23. Shoda nalezena, zaznamenejte pozici 5.
- Přejděte na další prvek: 89. Není požadované číslo.
- Přejděte na další prvek: 90. Není požadované číslo.
- Po iteraci vraťte seznam pozic: [1, 3, 5].
Příklad kódu v C++
V uvedeném příkladu multipleItemSearch
je funkce použita k nalezení všech výskytů čísla 23 v seznamu celých čísel. Výsledkem bude vektor obsahující pozice všech výskytů(pozice začínají od 0).