重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
10年的寿阳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整寿阳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“寿阳网站设计”,“寿阳网站推广”以来,每个客户项目都认真落实执行。
网上的相关教程非常多,基础知识自行搜索即可。
习题主要选自Orelly出版的《数据结构与算法javascript描述》一书。
参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/Hash
定义
哈希表是一种根据关键码去寻找值的数据映射结构,最直观的应用就是字典(现实的字典,不是数据结构的字典概念)。
特点:
常见散列函数
使用×××键对存储空间长度取模,所以存储空间长度一般取质数(取质数可以减小散列碰撞,不难理解)。
平方散列法
散列碰撞的一般解决方法
位置发生碰撞时使用链表或其他数据结构将碰撞元素连接起来。
当发生哈希碰撞时,从当前位置向后寻找到第一个没有使用的位置,将要加入的数据放在该处。一般在可使用空间大于待存数据量2倍时使用。
散列函数相关的应用非常广,例如webpack打包时在文件名中添加的哈希值,将给定信息转换为固定位数字符串的加密信息等都是散列的实际应用,感兴趣的读者可以自行搜索加密,摘要算法相关关键词进行学习。
编写一个简易Hash
类:
this.table
线性存储空间simpleHash( )
简易的哈希函数show( )
显示整个存储信息put(value)
将一个值存入哈希表中find(value)
根据实际需要编写的查找方法练习时可以先引入例题中的Hash
类,然后通过extends来继承Hash
类并复写set/get
方法或添加新的方法。