Comme le titre l'indique, j'essaie de trouver des éléments de M qui existent dans le grand tableau constant N. La plupart du temps, aucun élément de M n'existera dans N, donc la grande majorité des recherches effectuées sur M sont un perte de temps.Si j'ai un tableau de clés M et un tableau de cibles N, comment puis-je vérifier que M [i] existe dans N avant de le rechercher?
Je cherche un moyen de créer un index à vérifier avant de faire une recherche à grande échelle de M. Un projet similaire au mien crée un tableau de bits à partir des premiers octets de chaque élément de M, et de quoi Je comprends, exploite le parallélisme au niveau des bits pour le rechercher rapidement. Je ne comprends pas entièrement comment cela fonctionne.
Alors, quelles astuces puis-je utiliser pour réduire les chances de chercher M inutilement?
Ceci est une question principalement indépendante de la langue, mais pour être aussi complète que possible, j'utilise C++.
Cool, je n'avais pas entendu parler de ceux –
Ah, parfait. Je vais voir ce que les autres peuvent trouver avant d'accepter cela, mais cela semble être la réponse que je cherchais. Merci! – jakogut
Oui. Filtres de Bloom. Et puis reculer en ayant un moyen de trier N ou trier M. Avec un ou les deux triés, vous pouvez réduire la complexité de vos vérifications de collision, en sautant dans le milieu et court-circuiter avant la fin. – Jason