A több elemből álló keresési algoritmus a lista egy adott elemének minden előfordulását megkeresi. Az egyelemes keresési algoritmusokkal ellentétben ez a megközelítés nyomon követi a célelem többszöri előfordulását, és visszaadja a pozícióik listáját.
Hogyan működik
- Kezdje a lista elejétől.
- Ismételje meg a lista minden elemét.
- Hasonlítsa össze az aktuális elemet a célértékkel.
- Ha az aktuális elem megegyezik a célértékkel, rögzítse a pozícióját.
- Folytassa a következő elemmel, és ismételje meg a 3-4.
- A teljes lista iterációja után adja vissza a rögzített pozíciók listáját.
Példa
Tekintsük az egész számok listáját, és meg akarjuk találni a 23 szám összes előfordulását.
Lista: {12, 23, 45, 23, 56, 23, 89, 90}
- Kezdje elölről: 12. Nem a kívánt szám.
- Ugrás a következő elemre: 23. Egyezés található, a pozíció rögzítése 1-ként.
- Ugrás a következő elemre: 45. Nem a kívánt szám.
- Ugrás a következő elemre: 23. Talált egyezés, rögzítse a pozíciót 3-asként.
- Ugrás a következő elemre: 56. Nem a kívánt szám.
- Ugrás a következő elemre: 23. Talált egyezés, a pozíció rögzítése 5-ként.
- Ugrás a következő elemre: 89. Nem a kívánt szám.
- Ugrás a következő elemre: 90. Nem a kívánt szám.
- Az iteráció után adja vissza a pozíciók listáját: [1, 3, 5].
Példakód C++ nyelven
Az adott példában a multipleItemSearch
függvényt arra használjuk, hogy megkeressük a 23-as szám összes előfordulását egy egész számok listájában. Az eredmény egy vektor lesz, amely tartalmazza az összes előfordulás helyét(a pozíciók 0-tól kezdődnek).