1145 Hashing - Average Search Time (25 分) The task of this problem is simple: insert a sequence of distinct positive integers into a hash table first. ...
分类:
其他好文 时间:
2019-11-20 16:57:03
阅读次数:
104
20182331 2019 2020 1 《数据结构与面向对象程序设计》第8周学习总结 教材学习内容总结 查找 常见查找方式:线性查找,折半查找,哈希表查找,分块查找。 哈希函数构造方法:直接定址法,数字分析法,平方取中法,折叠法,除留余数法。 解决冲突的办法:开放定址法,再哈希法,链地址法。 查找 ...
分类:
其他好文 时间:
2019-11-04 18:02:07
阅读次数:
89
O后面的括号中有一个函数指明某个算法的耗时/耗空间与数据增长量之间的关系。其中n代表输入数据的量 O(1)-就是最低的时间复杂度 例子:哈希算法,无论数据规模多大,都可以在一次计算后找到目标(不考虑哈希冲突) O(n)-代表数据量增大n倍,耗时也增大n倍(线性) 例子:找到一个数组里最大的数,需要把 ...
分类:
其他好文 时间:
2019-11-02 20:13:18
阅读次数:
95
HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突 ...
分类:
其他好文 时间:
2019-10-25 16:41:36
阅读次数:
133
1.list 内部实现是数组 2.dict 内部实现是hash函数+哈希桶。一个好的hash函数使到哈希桶中的值只有一个,若多个key hash到了同一个哈希桶中,称之为哈希冲突。 3.set 内部实现是dict 参考文献: 【1】python基本数据类型的时间复杂度 - 简书 ...
分类:
编程语言 时间:
2019-10-14 10:40:25
阅读次数:
103
一、HashMap 的原理 1.HashMap简介 简单来讲,HashMap底层是由数组+链表的形式实现,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到 ...
分类:
其他好文 时间:
2019-10-13 18:46:54
阅读次数:
84
这个套路还是蛮常见的 思路: 将操作分为两类, 大于$\sqrt{n}$ 的, 和小于它的 为什么要这么干 考虑暴力 , 每次修改$O(1)$ , 每次查询$O(n)$ 那么它的复杂度是$O(n^2)$ 的 观察发现, 修改的复杂度远小于查询, 导致复杂度不平衡 考虑在修改时预处理以降低查询复杂度 ...
分类:
其他好文 时间:
2019-10-06 00:07:00
阅读次数:
101
P3396 哈希冲突 比较巧妙的根号算法 将询问分成两类:模数<=len和>len的 对于第一类,开一个桶记录 对于第二类,暴力 时间复杂度(n+m)√n 代码: ...
分类:
其他好文 时间:
2019-10-03 14:24:33
阅读次数:
81
HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突 ...
分类:
其他好文 时间:
2019-09-28 23:25:21
阅读次数:
107
1. 为什么用HashMap? 1. 简述一下Map类继承关系? 1. 解决哈希冲突的方法? 1. 为什么HashMap线程不安全? 1. resize机制? 1. HashMap的工作原理是什么? 1. 有什么方法可以减少碰撞? 1. HashMap中hash函数怎么是是实现的? 1. 拉链法导致 ...
分类:
其他好文 时间:
2019-09-10 23:54:24
阅读次数:
206