title: Hashtable for a system with memory constraints
body: <p>I have read about the variants of hashtable but it is not clear to me which one is more appropriate for a system that is low on memory (we have a memory constraint limit).<br>
  Linear/Quadratic probing works well for sparse tables.<br>
  I think Double hashing is the same as Quadratic in this aspect.<br>
  External chaining does not have issue with clustering.<br>
  Most textbooks I have checked seem to assume that a extra space will always be available but practically in most example implementations I have seen since the hashtable is never halved take much more space than really needed.<br>
  So which variant of a hashtable is most efficient when we want to make the best usage of memory?  </p>
  
  <p><strong>Update:</strong><br>
  So my question is not only about the size of the buckets. My understanding is that both the size of the buckets <strong>and</strong> the performance under load is what matters. Because if the size of the bucket is small but the table degrades on 50% load then this means we need to resize to a larger table often.</p>