Ich habe zwei alphabetisch geordnete Listen
von Worten (Text-Arrays). Nun will ich die Schnittmenge,
d.h. alle Worte, die in beiden Listen auftreten
finden.
- Einfachste Methode: alle Paare von Liste1 und
Liste2 durchprobieren–> Komplexitaet O(N*M) - Logarithmische Suche aller Elemente der kleineren
in der größeren Liste --> O(min(N,M)*log(max(N,M)) - Der Reihe nach von a anfangend je einen Pointer
auf Liste 1 und 2 verschieben, bei übereinstimmung beide,
ansonsten den mit der niedrigeren „Ordnung“
–> O(N+M)
Gibts hierfür noch was schnelleres?
Gibts einen Algorithmus, bei dem man ausnutzen kann,
dass die Listen meistens „fast gleich“ sind?
Gibts einen Algorithmus, bei dem man ausnutzen kann,
dass man zwei zu dem aktuellen Problem sehr ähnliche
Listen schon überprüft hat?
Gruss, Marco