excel学习库

excel表格_excel函数公式大全_execl从入门到精通

从VB/VBA字典Dictionary的算法和结构,谈谈其正确的使用方式!

1、Dictionary的查询速度很快,而且初始化后的Dictionary,的确很方便使用有网友

通过内嵌Dictionary/Collection对象,的确可以构建出复杂的数据结构,用于应对复杂的数据场景。

Dictionary内部是采用怎样的算法?结构又是怎样的?什么场景更适合?官方几乎没有透露相关信息。

Table

Dictionary是构建在数组上的,当有人怀疑数组与Dictionary,谁的性能更好时,那么这里就是结论了。


文件的网络传输通常使用CRC值校验完整性资源站(如百度云盘)通常使用MD5值标识文件互联网账号登录(如QQ)通常使用账号密码的Hash值代替账号密码进行校验来提升安全性等

Hash算法本身就存在1个无法避免的漏洞:无限映射有限,就存在重复的可能,这就是碰撞。

将Hash值作为验证手段,是建立在算力匮乏的假设上的

Dictionary中也存在Hash值冲突的情况,也就是相同的Hash值,可能对应好几个Key

链表法就是最常用的。链表法就像拉链一样,将冲突信息首尾串联在一起制约HashTable(Dictionary)性能的,就在这个地方。

一是设计出1个非常牛逼的Hash算法,对于任意数据样本都满足均匀分布,从而根本上减少冲突。二是扩大索引范围。以空间换时间的经典场面。Dictionary也不例外

Dictionary究竟开销如何呢?新建首个空的实例大约消耗120K内存,此后每个新建空实例约占5K。

Dictionary其实并不适合大规模数据的处理能用数组,就直接用数组了

BtOfficer,我打算将Dictionary周边说完后,来一篇针对Dictionary更深入,也更系统的分析。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接