Algoritam pretraživanja višestrukih stavki koristi se za pronalaženje svih pojavljivanja određenog elementa na popisu. Za razliku od algoritama pretraživanja jedne stavke, ovaj pristup prati više pojavljivanja ciljnog elementa i vraća popis njihovih pozicija.
Kako radi
- Počnite od početka popisa.
- Iterirajte kroz svaki element na popisu.
- Usporedite trenutni element s ciljnom vrijednošću.
- Ako je trenutni element jednak ciljanoj vrijednosti, zabilježite njegovu poziciju.
- Nastavite do sljedećeg elementa i ponovite korake 3-4.
- Nakon ponavljanja kroz cijeli popis, vratite popis snimljenih pozicija.
Primjer
Razmotrimo popis cijelih brojeva i želimo pronaći sva pojavljivanja broja 23.
Popis: {12, 23, 45, 23, 56, 23, 89, 90}
- Kreni ispočetka: 12. Nije željeni broj.
- Prijeđi na sljedeći element: 23. Podudaranje pronađeno, zabilježi poziciju kao 1.
- Prijeđi na sljedeći element: 45. Nije željeni broj.
- Prelazak na sljedeći element: 23. Podudaranje pronađeno, zabilježite poziciju kao 3.
- Prijeđi na sljedeći element: 56. Nije željeni broj.
- Prijeđi na sljedeći element: 23. Podudaranje pronađeno, zabilježi poziciju kao 5.
- Prijeđi na sljedeći element: 89. Nije željeni broj.
- Prijeđi na sljedeći element: 90. Nije željeni broj.
- Nakon ponavljanja, vratite popis pozicija: [1, 3, 5].
Primjer koda u C++
U navedenom primjeru multipleItemSearch
funkcija se koristi za pronalaženje svih pojavljivanja broja 23 na popisu cijelih brojeva. Rezultat će biti vektor koji sadrži položaje svih pojavljivanja(pozicije počinju od 0).