C关于映射的思考

学习《数据结构和算法分析》第五章散列的时候,后面的开放寻址:线性探测、平方探测、再散列。感觉都越来越复杂,于是就有个想法是可不可以使用简单的分离链接法直接散列,做映射。
书中明确说了分离散列慢的根源在于每次插入的内存分配,也就是malloc调用。那可以一次malloc多几个空间,不够了再分配吗?当然可以glib都有现成的动态数组,于是就有了用动态数组做hash table和mapping的想法。
按照理论设想使用空间肯定能超过未使用空间,动态数组可以满了再分配空间。只要预先估计数据大小合适每次查询key值或取出value查找次数理论会和各种探测方法探测次数相当。避免一次性再散列扩容的重新写入数据造成延迟的感觉,毕竟有多个动态数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值