Esta pregunta se ha formulado anteriormente, pero no hubo respuesta para ella en ese momento, así que decidí preguntar nuevamente.Implementación eficiente de un filtro Bloom en C?
Necesito una implementación eficiente de un filtro Bloom en C (no C++). Si no hay tal cosa disponible, no me importaría implementar una, si se me proporciona una buena referencia para que no ocupe demasiado tiempo.
Quiero utilizar esta estructura de datos para inserciones y pruebas en una proporción (1: 20k), por lo que principalmente es una prueba intensiva. Los datos que se probarán son enteros de 64 bits.
Es probabilístico. Si quiere una respuesta exacta, use Union Find Disjoint Set. Busque esto en el topcoder, debe haber algún tutorial para ello. – nhahtdh
Si está escribiendo C, este no es el tipo de cosas para las que necesita una biblioteca general. Debería tener menos de 100 líneas de código, y debería tomarse menos tiempo para escribir que integrar una biblioteca de terceros. Simplemente lea su descripción favorita del algoritmo en Wikipedia o similar. –
@R escribiendo me tomará menos tiempo que conozco, pero escribirlo de manera eficiente para que escale bien es un problema.Tengo que probar la pertenencia a los datos en el orden de 10^7 y hacer que esta consulta sea más rápida que la consulta de conteo (*) en el resultado de una combinación equi. No puedo permitirme perder ni siquiera un ms en mi implementación –