Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #1443
| From | Udit Gangwani <uditg22@gmail.com> |
|---|---|
| Newsgroups | comp.programming |
| Subject | Re: double hashing |
| Date | 2012-04-06 03:34 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <15658470.404.1333708448259.JavaMail.geo-discussion-forums@pbbol8> (permalink) |
| References | <jlcvrh$2bh$1@reader1.panix.com> |
On Tuesday, 3 April 2012 01:19:06 UTC+5:30, Joe keane wrote:
> question
>
> We some have 'docs' that can be 'contracted' or 'expanded'.
>
> They sometimes change from contracted to expanded and vice versa.
>
> They each have a 'key' that's unique [and doesn't change when they
> change state].
>
> struct condocinfo { ... };
> struct expdocinfo { ... };
>
> The info for an expanded doc is a superset of the info for a contracted doc.
> [e.g., pointers to more structures].
>
> Lookup by key.
>
> Scheme 1
>
> We keep a hash table for all docs that contains the info for contracted
> docs. We keep a hash table for only expanded docs that contains the
> info for expanded docs that's not in the first one.
>
> Scheme 2
>
> We keep a hash table for only contracted docs that contains the info for
> contracted docs. We keep a hash table for only expanded docs that
> contains the info for expanded docs.
>
> Time? Space?
>
> [it's for an old project so it's academic]
On Tuesday, 3 April 2012 01:19:06 UTC+5:30, Joe keane wrote:
> question
>
> We some have 'docs' that can be 'contracted' or 'expanded'.
>
> They sometimes change from contracted to expanded and vice versa.
>
> They each have a 'key' that's unique [and doesn't change when they
> change state].
>
> struct condocinfo { ... };
> struct expdocinfo { ... };
>
> The info for an expanded doc is a superset of the info for a contracted doc.
> [e.g., pointers to more structures].
>
> Lookup by key.
>
> Scheme 1
>
> We keep a hash table for all docs that contains the info for contracted
> docs. We keep a hash table for only expanded docs that contains the
> info for expanded docs that's not in the first one.
>
> Scheme 2
>
> We keep a hash table for only contracted docs that contains the info for
> contracted docs. We keep a hash table for only expanded docs that
> contains the info for expanded docs.
>
> Time? Space?
>
> [it's for an old project so it's academic]
Since contracted info is a subset of expanded doc, and if the processing of contracted info from expanded info is order of constant then just maintain a single structure "struct expdocinfo { ... };" and a single Hash Table for it.
Else
Keep a structure docInfo and keep both condocinfo{} and expdocinfo{} inside it and maintain a single Hash table with the value as a pointer to the docInfo object;
struct docInfo
{
struct expdocinfo{} expDocInfoObj;
struct condocinfo{} conDocInfoObj;
};
Back to comp.programming | Previous | Next — Previous in thread | Find similar
double hashing jgk@panix.com (Joe keane) - 2012-04-02 19:49 +0000 Re: double hashing Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-04-02 13:02 -0700 Re: double hashing Udit Gangwani <uditg22@gmail.com> - 2012-04-06 03:34 -0700
csiph-web