首页 > 编程语言 > 详细

用python实现哈希表(开放地址法)

时间:2014-01-31 12:27:28      阅读:1001      评论:0      收藏:0      [点我收藏+]

哈哈,这是我第一篇博客园的博客。写了一个用python实现的哈希表,处理冲突的方法是开放地址法,冲突表达式为Hi=(H(key)+1)mod m,m为表长。迟点再实现更难的拉链法。

bubuko.com,布布扣
 1 #! /usr/bin/env python
 2 #coding=utf-8
 3 #实现哈希表(线性地址再散列)
 4 
 5 def ChangeKey(key,m,di):
 6     key01=(key+di) % m
 7     return key01
 8 
 9 a=raw_input("Please entry the numbers:\n").split()
10 m=len(a)
11 dict01={}
12 for i in a:
13     key=int(i)%m
14     if "%s"%key in dict01:
15         NewKey=ChangeKey(key,m,1)
16         while "%s"%NewKey in dict01:         #因为下面的dict01的key值是以字符串来保存,因此这里作判断时也要用字符串格式
17             NewKey=ChangeKey(NewKey,m,1)
18         dict01["%s"%NewKey]=int(i)
19     else:
20         dict01["%s"%key]=int(i)
21 print dict01
bubuko.com,布布扣

用python实现哈希表(开放地址法)

原文:http://www.cnblogs.com/cjyfff/p/3536525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!