野生前端的数据结构基础练习(5)——散列
导读:本文共1009字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 网上的相关教程非常多,基础知识自行搜索即可。习题主要选自Orelly出版的《数据结构与算法javascript描述》一书。参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/Hash散列的基本知识常见散列函数使用×××键对存储空间长度取模,所以存储空间长度一般... ...
目录
(为您整理了一些要点),点击可以直达。网上的相关教程非常多,基础知识自行搜索即可。
习题主要选自Orelly出版的《数据结构与算法javascript描述》一书。
参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/Hash
散列的基本知识
常见散列函数
使用×××键对存储空间长度取模,所以存储空间长度一般取质数(取质数可以减小散列碰撞,不难理解)。
散列碰撞的一般解决方法
位置发生碰撞时使用链表或其他数据结构将碰撞元素连接起来。
当发生哈希碰撞时,从当前位置向后寻找到第一个没有使用的位置,将要加入的数据放在该处。一般在可使用空间大于待存数据量2倍时使用。
散列函数应用
散列函数相关的应用非常广,例如webpack打包时在文件名中添加的哈希值,将给定信息转换为固定位数字符串的加密信息等都是散列的实际应用,感兴趣的读者可以自行搜索加密,摘要算法相关关键词进行学习。
基本练习
编写一个简易Hash
类:
课后习题(书中第八节习题)
习题思路
练习时可以先引入例题中的Hash
类,然后通过extends来继承Hash
类并复写set/get
方法或添加新的方法。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
野生前端的数据结构基础练习(5)——散列的详细内容,希望对您有所帮助,信息来源于网络。