I am making a Hash Table with separate chaining as a project in school.

I am mainly confused about the size that I need/want the hash table to be. The general rule my teacher has given me is that a hash table should have twice as many buckets as expected to be filled, and should never exceed 75% capacity. He also said something along the lines of "don't be greedy".

So the first question is, how do I know when I am being greedy with the capacity of my table? Secondly, we are making the table have separate binding, and thus, are ensured of a max size. Think I should still double it?

To put a little context into it, our input is 100 items. Each item has three defining (I need to be able to find them quick) properties. The first property has 26 possibilities, the second has 5, and the third also has 5. So, that's a table of 650 buckets. Why even have separate chaining at that point? When I double that, it seems even more ridiculous.

I am mainly confused about the size that I need/want the hash table to be. The general rule my teacher has given me is that a hash table should have twice as many buckets as expected to be filled, and should never exceed 75% capacity. He also said something along the lines of "don't be greedy".

So the first question is, how do I know when I am being greedy with the capacity of my table? Secondly, we are making the table have separate binding, and thus, are ensured of a max size. Think I should still double it?

To put a little context into it, our input is 100 items. Each item has three defining (I need to be able to find them quick) properties. The first property has 26 possibilities, the second has 5, and the third also has 5. So, that's a table of 650 buckets. Why even have separate chaining at that point? When I double that, it seems even more ridiculous.

Topic archived. No new replies allowed.