数据结构——散列表(2)

王争数据结构19笔记

1、一个工业级的散列表具有的特点:

     1)支持快速的查询、插入、删除操作;

     2)内存占用合理,不能浪费过多的内存空间;

     3)性能稳定,极端情况下,散列表的性能也不会退化到无法接受的情况。

2、设计一个散列表主要的思路包括:

    1)设计一个合适的散列函数

    2)定义装载因子阈值,并且设计动态扩容策略

    3)选择合适的散列冲突解决方法

3、为了解决一次性扩容耗时过多的问题,将扩容操作穿插在插入操作的过程中,分批完成。当装载因子达到阈值之后,只申请新空间,但并不将老的数据移到新散列表中。当有新数据要插入时,将新数据插入新散列表中,并且从老的散列表中拿出一个数据放入新散列表。

4、当数据量比较小,装载因子小的时候,适合采用开放寻址法。基于链表的散列冲突方案适合存储大对象、大数据量的散列表,比起开放寻址,它更加灵活,支持更多的优化策略,比如使用红黑树代替链表。

5、散列函数的设计上要尽量使散列后的值随机且均匀分布,尽可能的减少散列冲突。散列函数的设计也不能过于复杂,否则会影响散列表的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值