Questa domanda è stata posta in precedenza ma a quell'ora non c'era una risposta, quindi ho deciso di richiederlo.Implementazione efficiente di un filtro Bloom in C?
Ho bisogno di un'implementazione efficiente di un filtro Bloom in C (non C++). Se non è disponibile una cosa del genere, non mi dispiacerebbe implementarne una, se avessi dato qualche buon riferimento in modo che non mi ci volesse molto del mio tempo.
Desidero utilizzare questa struttura dati per inserti e test in un rapporto (1: 20k), quindi in primo luogo è un test intensivo. I dati da testare sono interi a 64 bit.
È probabilistico. Se vuoi una risposta esatta, usa Union Trova Disjoint Set. Cerca questo su topcoder, dovrebbe esserci qualche tutorial per questo. – nhahtdh
Se stai scrivendo C, questo non è il tipo di cosa per cui hai bisogno di una biblioteca generale. Dovrebbe contenere meno di 100 righe di codice e impiegare meno tempo per scrivere rispetto all'integrazione di una libreria di terze parti. Basta leggere la tua descrizione preferita dell'algoritmo su Wikipedia o simili .. –
@R scrivendo ci vorrà meno tempo che io conosca ma in modo efficiente scrivendolo in modo che si riduca bene è un problema.Devo testare l'appartenenza ai dati nell'ordine di 10^7 e rendere questa query più veloce della query count (*) sul risultato di un equi join. Non posso permettermi di perdere nemmeno un ms nella mia implementazione –