《算法图解》第五章 散列表(散列函数)

《算法图解》第五章 散列表

概述

简单查找的时间复杂度是O(n),二分查找的时间复杂度是O(logn),如果希望时间复杂度降为O(1),则可以使用散列表。

散列函数

散列函数需要满足的条件:

  1. 相同的输入映射到相同的数字
  2. 不同的输入映射到不同的数字

假设散列函数为f(x),将商品的价格用散列表存储,设目前数组arr的长度为5:

  • f(Apple)=3,则Apple在数组中的索引为3,,其中Apple的价格为5.6
  • f(Milk)=3,则Milk在数组中的索引为0,,其中Milk的价格为3.2
  • f(Avocado)=4,则Avocado在数组中的索引为4,,其中Avocado的价格为6.5
    则该数组的内容为:
01234
3.25.66.5
由上可以看出,散列函数和数组创建了一种被称为散列表(hash table)的数据结构。

python实现

menu = dict()
menu["Apple"] = 5.6
menu["Milk"] = 3.2
menu["Avocado"] = 6.5
posted @ 2022-11-13 22:35  dlhl  阅读(22)  评论(0)    收藏  举报