哈希表有什么好处

这道题,为什么要用哈希表来存储每个点的坐标,再去找表里面符合已给坐标的点,直接算不行吗描述给出平面上一些点的坐标,统计由这些点可以组成多少个正方形。注意:正方形的边不一定... 这道题,为什么要用哈希表来存储每个点的坐标,再去找表里面符合已给坐标的点,直接算不行吗
描述
给出平面上一些点的坐标,统计由这些点可以组成多少个正方形。注意:正方形的边不一定平行于坐标轴。
输入
输入包括多组测试数据。每组的第一行是一个整数n (1 <= n <= 1000),表示平面上点的数目,接下来n行,每行包括两个整数,分别给出一个点在平面上的x坐标和y坐标。输入保证:平面上点的位置是两两不同的,而且坐标的绝对值都不大于20000。最后一组输入数据中n = 0,这组数据表示输入的结束,不用进行处理。
输出
对每组输入数据,输出一行,表示这些点能够组成的正方形的数目。
展开
 我来答
爱可生云数据库
2021-01-29 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

散列表是一种数据结构,通过散列函数(也就是 hash 函数)将输入映射到一个数字,一般用映射出的数字作为存储位置的索引。数组在查找时效率很高,但是插入和删除却很低。而链表刚好反过来。设计合理的散列函数可以集成链表和数组的优点,在查找、插入、删除时实现 O(1) 的效率。散列表的存储结构使用的也是数组加链表。执行效率对比可以看下图 1.3:



散列表的主要特点:

     1.将输入映射到数字

     2. 不同的输入产生不同的输出

3. 相同的输入产生相同的输出


4. 当填装因子超过阈值时,能自动扩展。填装因子 = 散列表包含的元素数 / 位置总数,当填装因子 =1,即散列表满的时候,就需要调整散列表的长度,自动扩展的方式是:申请一块旧存储容量 X 扩容系数的新内存地址,然后把原内存地址的值通过其中的 key 再次使用 hash 函数计算存储位置,拷贝到新申请的地址。


5. 值呈均匀分布。这里的均匀指水平方向的,即数组维度的。如果多个值被映射到同一个位置,就产生了冲突,需要用链表来存储多个冲突的键值。极端情况是极限冲突,这与一开始就将所有元素存储到一个链表中一样。这时候查找性能将变为最差的 O(n),如果水平方向填充因子很小,但某些节点下的链表又很长,那值的均匀性就比较差。

名卷无名
2017-10-18 · 致力于绵阳中小学名校冲刺培训课程研究。
名卷无名
采纳数:775 获赞数:17186

向TA提问 私信TA
展开全部
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-09-06
展开全部
就相当于一个密码对照表,因为无法逆向解密,所以把所有(或部分)hash预先算出来做成一个表,并记录与之对应的密码,当我们知道一个hash想解密是,就到这个表里进行查询,若有相同的hash存在,则知道了其对应的密码为什么要做这样一个表呢,就是为了提高破解速度,如果我们直接进行暴力破解,每一个密码都要进行计算得到hash,再将它与已知hash进行对比,这个计算过程会很耗时,有表的情况下只需要读取进行对比就可以了,速度上要快得多
追问
好像明白一点了,分给你吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式