数据结构与算法

内置算法数据结构库:

sorted

dict/list/set/tuple

import collections

 

dict底层结构:无序

Python中所有不可变的内置类型都是可哈希的。
可变类型(如列表,字典和集合)就是不可哈希的,因此不能作为字典的键

dict底层使用hash:为了快速查找使用哈希表作为底层结构

哈希表平均查找时间复杂度0(1)

HASH处理冲突方法

创建HASH和查找hash遇到的问题都可以用同一个方法解决:

开放定址法:基本思想:当关键子key哈希地址p=H(key)冲突,以p为基础,产生另一个哈希地址p1,如果P1冲突,产生P2.。。。。。。直到找出一个不冲突的哈希地址PI

线性探测再散列

特点:冲突发生时,顺序查看表中下一单元,直接找出一个空单元或查遍全表

二次探测再散列:

冲突发生时,在表的左右进行跳跃式探索,比较灵活

链地址法:

建立公共溢出区:将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素一律写进溢出表

python list/tuple 区别

list vs tuple

都是线性结构,支持下表访问

list是可变对象,tuple保存的引用不可变

list不可hash,tuple可以hash

什么是LRUCache

LRU:替换掉最近最少使用的对象

缓存提出策略:当缓存空间不够用的时候需要一种方式剔除key

LRU:通过使用一个循环双端队列不断把最新访问的key放到表头实现

实现LURCache

字典用来缓存, 循环双端链表用来记录访问顺序、

dict+collections.OrderedDict

dicr用来当作k/v键值对的缓存

​​​​​​​orderedDict用来实现更新最近访问的key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值