![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
散列查找
文章平均质量分 88
大力海棠
蓝桥杯Java组个人赛省二,麻瓜ACMer的北京尚学堂·百战程序员( ̄y▽ ̄)~*
展开
-
散列表的构建与冲突处理 – 线性探测
散列表的构建是散列查找的前提,说起查找,我第一时间想起二分查找,可是二分查找要求序列是有序排列的并且元素的存储地址是连续的。对于数据查找还好,但是如果做插入或删除操作的话,就要移动大量的元素,当数据量很大时,这样明显不划算。二分查找不行(要求序列为有序序列),那么可以用二叉搜索树啊!二叉搜索树的查找、插入和删除时间复杂度可以从O(logN)到O(N)。N为二叉搜索树的高度。 ...原创 2018-12-24 16:41:38 · 2020 阅读 · 0 评论 -
散列表的删除与冲突处理 - 平方探测
接下来我们看冲突处理中的平方探测法(终于写出来了- -、),平方探测顾名思义就是探测增量是1²、-1²、2²、-2²…(线性探测是1、2、3、4……),平方探测与线性探测有点不同,线性探测是查找位置发生冲突后,就往后探测,后一个位置又有冲突的话,继续往后探测,直到找到空位置为止,所以说只要散列表上有空的单元格,线性探测就一定可以找到空位置。但是平方探测不一定,平方探测的做法是:查找某个位置,如果发...原创 2018-12-31 20:41:41 · 4957 阅读 · 0 评论 -
散列表的冲突处理 – 分离链接法
分离链接法是不同于前面两种线性探测和平方探测,线性探测和平方探测是,遇到冲突就往“下一个”散列地址寻找空位,这样散列表中的没空位后就不能插入元素了,但是分离链接法不同,它把在同一散列地址上的元素链接在一起,也就是把冲突元素用一个链表链接起来,这样发生每次计算出来的散列地址就一定是该元素在散列表中的散列地址,只不过在找到散列地址后,还要遍历一遍这个地址里的链表来查找要找到那个元素。这样看来,分离链接...原创 2019-01-07 20:33:23 · 1162 阅读 · 0 评论