zoukankan      html  css  js  c++  java
  • 散列表

    散列表

    简单地来说,通过某种函数关系将输入的数据映射为数字,使得数字与数据有着一一对应的关系。

     其中,散列函数必须满足一定的要求:

    •  它必须是一致的。例如,当你输入mag时得到4,那么每当输入mag时,其结果也得是4
    •    它必须将用户的输入映射到不同的数值。例如,当你输入不同的数据时,如果每次都映射到1,那么显然这个散列函数不是一个好的散列函数。最好情况下,每一个数据映射到不同的数值

       python提供的散列函数为字典。

     例如:

        book = {"aa":"3,12","bb":"231","cc":"5.77"}

     散列表的应用

    •   将散列表应用于查找。例如,将119.75.218.70映射为www.baidu.com。
    •       防止元素重复。
    •       将散列表用作缓存。访问网站的一个大致流程为:你向xxxxx网站服务器发出一个请求,然后服务器做一些 处理,返回个网页给你,最后你就看到所呈现的网站。

        缓存原理:记录你最近所访问的数据,如果你需要该数据,服务器可以直接将其返回给你,不必进行大量的查找操作,从而节约时间。

        缓存是一种常用的加速方式,而缓存的数据就存储在散列表中。

        其大致过程如下:

        

           测试代码:

    cache = {}
    
    def get_page(url):
        if cache.get(url):
            return cache[url]
        else:
            data = get_data_from_server(url)
            cache[url] = data
            return data

      性能分析

        由于常规的散列表都是一一映射的关系,查找、删除、修改值,其时间复杂度均为O(1)

         

  • 相关阅读:
    备忘
    跨域问题思考
    个人理解的Lambda表达式的演化过程
    MySql 事务与锁
    Python连接MySQL
    将python虚拟环境移植到无法联网的电脑
    PyQt5+QtDesigner+fbs+python创建桌面程序
    Pycharm+Anaconda安装及配置
    一个极好的JavaScript学习网址
    Python GUI工具Tkinter以及拖拉工具Page安装
  • 原文地址:https://www.cnblogs.com/vipchenwei/p/6879473.html
Copyright © 2011-2022 走看看