I am using the xor version of the djb algorithm to hash names. I did some quick googling before starting and found that this was a pretty common algorithm to use for this case. When testing my my code, I end up with what I think are a large amount of collisions.
I ran a couple of different lists of names against the algorithm and I found that depending on the list of names I would have on the low end 50% collisions and on the high end as much as 96.9% of the names colliding. These collisions do occur after performing the modulo operation on the resulting hash to make it fit in a table. Is this par for the course when it comes to the non cryptographic hashing algorithms? Or am I doing something wrong / picking the wrong hashing algorithm.
Edit: I am using an open addressing scheme with linear probing. I use a prime number as my table size and I resize the table by choosing the smallest prime larger than double the previous size. I resize the table when it is 60% filled.