📅  最后修改于: 2023-12-03 14:55:10.699000             🧑  作者: Mango
在计算机科学中,映射是一种将键与值相关联的抽象数据类型。键是一个唯一标识符,用于查找对应的值。可以使用映射来存储和访问与键相关联的值。
映射可以使用多种方式实现,例如哈希表、二叉搜索树、有序数组等。下面以哈希表为例进行介绍。
哈希表使用哈希函数将键映射到索引位置,并在该位置存储值。哈希函数通常将键转换为一个整数,该整数在哈希表的范围内,然后将整数作为索引来存取值。
哈希表的查找、插入、删除等操作的时间复杂度为 $O(1)$,在实际应用中非常高效。但是由于哈希函数的设计和哈希冲突的影响,哈希表的性能可能会下降。
以下是使用 Python 实现哈希表的示例代码:
class HashMap:
def __init__(self):
self.size = 16
self.map = [None] * self.size
def _get_hash(self, key):
return hash(key) % self.size
def add(self, key, value):
key_hash = self._get_hash(key)
key_value = [key, value]
if self.map[key_hash] is None:
self.map[key_hash] = list([key_value])
return True
else:
for pair in self.map[key_hash]:
if pair[0] == key:
pair[1] = value
return True
self.map[key_hash].append(key_value)
return True
def get(self, key):
key_hash = self._get_hash(key)
if self.map[key_hash] is not None:
for pair in self.map[key_hash]:
if pair[0] == key:
return pair[1]
return None
def delete(self, key):
key_hash = self._get_hash(key)
if self.map[key_hash] is None:
return False
for i in range(0, len(self.map[key_hash])):
if self.map[key_hash][i][0] == key:
self.map[key_hash].pop(i)
return True
return False
映射是一种将键与值相关联的抽象数据类型,在实际应用中具有广泛的用途。哈希表是一种常用的映射实现方式,它具有快速的查找、插入、删除等操作的特点。