Algorytm wyszukiwania wielu elementów służy do znajdowania wszystkich wystąpień określonego elementu na liście. W przeciwieństwie do algorytmów wyszukiwania pojedynczego elementu, to podejście śledzi wiele wystąpień elementu docelowego i zwraca listę jego pozycji.
Jak to działa
- Zacznij od początku listy.
- Iteruj przez każdy element na liście.
- Porównaj bieżący element z wartością docelową.
- Jeśli bieżący element jest równy wartości docelowej, zapisz jego pozycję.
- Przejdź do następnego elementu i powtórz kroki 3-4.
- Po iteracji przez całą listę zwróć listę zarejestrowanych pozycji.
Przykład
Rozważmy listę liczb całkowitych i chcemy znaleźć wszystkie wystąpienia liczby 23.
Lista: {12, 23, 45, 23, 56, 23, 89, 90}
- Zacznij od początku: 12. Nie żądana liczba.
- Przejdź do następnego elementu: 23. Znaleziono dopasowanie, zapisz pozycję jako 1.
- Przejdź do następnego elementu: 45. Nie żądana liczba.
- Przejdź do następnego elementu: 23. Znaleziono dopasowanie, zapisz pozycję jako 3.
- Przejdź do następnego elementu: 56. Nie żądana liczba.
- Przejdź do następnego elementu: 23. Znaleziono dopasowanie, zapisz pozycję jako 5.
- Przejdź do następnego elementu: 89. Nie żądana liczba.
- Przejdź do następnego elementu: 90. Nie żądana liczba.
- Po iteracji zwróć listę pozycji: [1, 3, 5].
Przykładowy kod w C++
W podanym przykładzie multipleItemSearch
funkcja służy do znalezienia wszystkich wystąpień liczby 23 na liście liczb całkowitych. Wynikiem będzie wektor zawierający pozycje wszystkich wystąpień(pozycje zaczynają się od 0).