A minor fix.
2 Author: Eugen Sawin <sawine@informatik.uni-freiburg.de>
7 args = parse_arguments()
11 probe = linear_probing
13 probe = quadratic_probing
15 print "you need to select a probing procedure"
18 for key in args.values.split():
19 table = hash(int(key), args.table_size, table, probe)
20 for k, v in table.iteritems():
21 print "%i: %i" % (k, v)
22 #print "%s: %i" % (key, double_hash(int(key), used))
24 def hash(k, size, table, probe):
26 code = h(k, size) % size
29 code = (h(k, size) - probe(j, k, size)) % size
33 def linear_probing(j, k, size):
36 def quadratic_probing(j, k, size):
37 return (-1)**j * math.ceil(j/2.0)**2
39 def double_hash(j, k, size):
40 return j * h2(k, size)
46 return 1 + (k % (size - 2))
48 from argparse import ArgumentParser
50 def parse_arguments():
51 parser = ArgumentParser(description="Returns the hash for given string using the double-hash technique.")
52 parser.add_argument("table_size", type=int, help="size of the hash table")
53 parser.add_argument("values", help="values")
54 parser.add_argument("-d", action="store_true", help="double hashing")
55 parser.add_argument("-l", action="store_true", help="linear probing")
56 parser.add_argument("-q", action="store_true", help="quadratic probing")
57 return parser.parse_args()
59 if __name__ == "__main__":