字典:无序的集合,通过键来存取
特性:
1.通过键而不是通过偏移量来读取
2.任意对象的无序集合
3.可变长、异构、任意嵌套
4.属于可映射类型
5.对象引用表(散列表)
常见操作:
操作
解释
d={}
空字典
d={'a':1,'b':2,'c':'3'}
两项目字典
d={'a':1,{'b':2}}
嵌套
d=...
分类:
编程语言 时间:
2015-08-28 17:52:45
阅读次数:
162
集合详解1.1HashSetHashSet是Set接口的一个子类,主要的特点是:里面不能存放重复元素,而且采用散列的存储方法,所以没有顺序。这里所说的没有顺序是指:元素插入的顺序与输出的顺序不一致。代码实例:HashSetDemopackage edu.sjtu.erplab.collection;...
分类:
编程语言 时间:
2015-08-28 12:32:55
阅读次数:
242
分离链接散列算法的缺点是使用一些链表。由于给新单元分配地址需要时间,因此这就导致算法的速度有些减慢,同时算法实际上还要求对第二种数据结构的实现。另有一种不用链表解决冲突的方法是尝试另外一些单元,直到找出空的单元为止。更常见的是,单元h0(x),h1(x),h2(x),...相继被试选,其中hi(x)=(hash(x)+f(i)) mod TableSize,且f(0)=0。函数f是冲突解决方法,因...
分类:
编程语言 时间:
2015-08-27 23:04:30
阅读次数:
655
在进程描述符中进入几个字段来表示进程之间的父子关系和兄弟关系。
图3-4显示了一组进程间的亲属关系。
表3-4:建立非亲属关系的进程描述符字段
在某些情况下,内核必须能从进程的PID到处对应的进程描述符指针,顺序扫描进程链表并检查进程描述符的pid字段是可行但相当低效的。为了加速查找,...
分类:
系统相关 时间:
2015-08-27 18:54:54
阅读次数:
173
简单来讲,rowkey就是 KeyValue 中的key rowkey设计之 尽量散列设计 RowKey 如第三部分第六中讲到,如果数据都是有序的存储到一个特定的范围内,将会存储在一个有特定起始键和停止键的 region 中。 由于一个 region 只能由一个服务器管理, 所以所有的更新都会几种在...
分类:
其他好文 时间:
2015-08-27 13:09:28
阅读次数:
148
【JavaSE】day05_Map接口_HashMap_hashCode
1.Map接口
1)java.util.Map
Map看起来像是一个多行两列的表格。每条记录分为两部分:key,value。
其中在一个Map中key是不允许重复的(equals比较)
2)常用实现类:java.util.HashMap(散列算法实现)
...
分类:
编程语言 时间:
2015-08-27 00:31:43
阅读次数:
172
散列表的实现通常叫做散列hashing。散列是一种用于以常数平均时间执行插入、删除和查找的技术。但是,那些需要元素间任何排序信息的树操作将不会得到有效的支持。理想的散列表数据结构只不过是一个包含一些项的具有固定大小的数组。通常查找是对项的某个部分(数据域)进行的,这部分叫做关键字。例如,项可以由一个串(作为关键字)和其它一些数据域组成。我们把表的大小记作TableSize,并将其理解为散列数据结构...
分类:
编程语言 时间:
2015-08-27 00:30:40
阅读次数:
150
散列函数直接用key%size的形式,size为散列表的大小。
冲突处理采用平方探测法,为保证可以探测到整个散列表空间,散列表大小设置为4k+3形式的素数。
当散列表中的元素过多时会造成性能下降,这时应该倍增散列表的大小,重新计算原来散列表中每个元素在新的散列表中的位置。
散列表的实现
// HashTable.cpp : 定义控制台应用程序的入口点。
//
#inc...
分类:
其他好文 时间:
2015-08-26 20:15:23
阅读次数:
189
1、B+Tree/Hash_Map/STL Map三种数据结构的优势: Hash操作能根据散列值直接定位数据的存储地址,设计良好的hash表能在常数级时间下找到需要的数据,但是更适合于内存中的查找。 B+树是一种是一种树状的数据结构,适合做索引,对磁盘数据来说,索引查找是比较高效的 ST...
分类:
其他好文 时间:
2015-08-21 22:52:32
阅读次数:
150