文章
58
粉丝
253
获赞
1
访问
22.0k
### 一、关键前提计算
1. **确定散列表长度**:
装填因子α = 关键字个数 / 散列表长度(设为m)。
关键字共7个,α=0.7,因此m = 7 / 0.7 = 10,即散列表为下标0~9的数组。
2. **散列函数**:H(key) = (key×3) mod 7,先计算每个关键字的初始哈希地址,再用**线性探测再散列**(冲突时地址+1,直到找到空闲位置)处理冲突。
### 二、构造散列表(问题⑴)
按关键字顺序⟨7,8,30,11,18,9,14⟩依次插入:
1. **key=7**:H(7)=(7×3)mod7=21mod7=0 → 地址0空闲,插入下标0。
2. **key=8**:H(8)=(8×3)mod7=24mod7=3 → 地址3空闲,插入下标3。
3. **key=30**:H(30)=(30×3)mod7=90mod7=6 → 地址6空闲,插入下标6。
4. **key=11**:H(11)=(11×3)mod7=33mod7=5 → 地址5空闲,插入下标5。
5. **key=18**:H(18)=(18×3)mod7=54mod7=5 → 地址5已被11占用(冲突),探测地址6(被30占用)、地址7(空闲),插入下标7。
6. **key=9**:H(9)=(9×3)mod7=27mod7=6 → 地址6已被30占用(冲突),探测地址7(被18占用)、地址8(空闲),插入下标8。
7. **key=14**:H(14)=(14×3)mod7=42mod7=0 → 地址0已被7占用(冲突),探测地址1(空闲),插入下标1。
最终散列表(下标0~9):
| 下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|------|----|----|----|----|----|----|----|----|----|----|
| 关键字 | 7 | 14 | 空 | 8 | 空 | 11 | 30 | 18 | 9 | 空 |
### 三、平均查找长度计算(问题⑵)
#### 1. 查找成功的平均查找长度(ASL成功)
- **定义**:每个关键字...
登录后发布评论
暂无评论,来抢沙发