红黑树的由来:在查找中,虽然hash表查找非常迅速,但是随着数据的种类增多,hash表长会变得更长,且冲突也会越来越多,那么如何才能实现无论在多大数据量的情况下,查找依然是高性能的呢?同时我们又知道树是很好的一种数据结构,那用于插入,删除,查找等都是很高效的数据树构,但问题是在很坏的情况下,操作很费...
分类:
编程语言 时间:
2015-07-20 15:44:47
阅读次数:
114
前置阅读:jdk源码阅读-Map :http://www.cnblogs.com/ccode/p/4645683.html在前置阅读的文章里,已经提到HashMap是基于Hash表实现的,所以在讲解HashMap之前 ,有必要提前了解下Hash的原理。参考《算法导论》《算法》
分类:
其他好文 时间:
2015-07-14 17:27:18
阅读次数:
91
先来解释一下freemaker的基本语法了,中存放所有freemaker的内容,之外的内容全部原样输出。是函数调用两个定界符内的内容中,第一个符号表示指令或者函数名,其后的跟随参数。freemaker提供的控制包括如下:条件判断遍历hash表或者collection(freemaker称作seque...
分类:
其他好文 时间:
2015-07-10 22:01:23
阅读次数:
167
最近刷Leetcode发现凡是找字符串中重复字符或者数组中找重复数据的时候就不知道从何下手了。
所以决定学习一下哈希表解题,哈希表的原理主要是解决分类问题,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。
定义ha...
分类:
其他好文 时间:
2015-07-07 22:50:31
阅读次数:
189
最近刷Leetcode发现凡是找字符串中重复字符或者数组中找重复数据的时候就不知道从何下手了。
所以决定学习一下哈希表解题,哈希表的原理主要是解决分类问题,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。
定义ha...
分类:
其他好文 时间:
2015-07-07 22:49:44
阅读次数:
198
hash表冲突的解决方法一般有两个方向: 一个是倾向于空间换时间,使用向量加链表可以最大程度的在节省空间的前提下解决冲突。 另外一个倾向于时间换空间,下面是关于这种思路的一种合适表长度的证明过程: 这种思路的主要做法是当位置冲突时使用随后的位置保存数据,但是毫无策略的直接使用随后的位置会造...
分类:
其他好文 时间:
2015-07-05 19:44:28
阅读次数:
99
设f[i][j]表示前i个字母中字母j出现的次数对2取模的结果。若[l,r]经过重组可以形成回文串,则需满足f[l-1][j]与f[r][j]至多有1位不同。将f[i]用一个long long表示,枚举不同的那一位,用Hash表支持查询即可。时间复杂度$O(52n)$。#include#define...
分类:
其他好文 时间:
2015-07-05 18:09:30
阅读次数:
104
题意:
给n个长m的字符串,统计他们的出现频率,输出出现1次的有几种,出现2次的有几种...出现n次的有几种。n
分析:
也可以用排序,map水的,但还是写个trie树也不麻烦,trie树我就得就是针对字符串的hash表,效率如果数据大点是比暴力解法高很多的,另外写的时候不小心把index定义成char,n
代码:
//poj 2945
//sep9
#include
using na...
分类:
其他好文 时间:
2015-07-05 15:08:33
阅读次数:
166
今天学习了一种用hash求解lcp问题的方法。把一段内的hash表示为某个数x的递增次方乘上字符串相应位置的字母对应值,然后二分长度,判断两段的hash值是否相等就可以了。hash值可以用unsigned long long保存,这种类型能在溢出的时候自动mod2^64(看到书上说的)。cogs18...
分类:
其他好文 时间:
2015-07-04 19:36:51
阅读次数:
123