diff -r b3a61fa4c8d7 -r 7301096bb430 src/chaining_hash.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/chaining_hash.py Mon Jun 20 20:29:03 2011 +0200 @@ -0,0 +1,32 @@ +""" +Author: Eugen Sawin +""" + +def main(): + args = parse_arguments() + table = {} + for key in args.values.split(): + table = chained_hash(int(key), table, int(args.table_size)) + for k in range(int(args.table_size)): + if k not in table: + table[k] = [] + print "%i: %s" % (k, table[k]) + +def chained_hash(k, table, size): + code = k % size + if code in table: + table[code].append(k) + else: + table[code] = [k] + return table + +from argparse import ArgumentParser + +def parse_arguments(): + parser = ArgumentParser(description="") + parser.add_argument("table_size", help="size of the hash table") + parser.add_argument("values", help="values") + return parser.parse_args() + +if __name__ == "__main__": + main()