算法
cuidongdong1234
这个作者很懒,什么都没留下…
展开
-
字典树
首先引用一下字典树书的基本概念和性质:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。它有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包原创 2013-08-11 12:36:43 · 729 阅读 · 0 评论 -
布隆过滤器(bloom filter)
好久不接触她了,一些细节居然忘了,本来想自己写写,想了想还是转载吧,当然自己要总结一下关键点。转载地址: http://www.dbafree.net/?p=36概览: Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。定义: Bl转载 2015-01-19 19:59:33 · 825 阅读 · 0 评论 -
链表算法总结
不多说了,还是结合代码吧。package com.dong.istudy.algorithm;/** * 1,一个链表是否有环(也就是相交),一個指针走两步,另外一个指针走一半,如何两个重合那么说明相交。 * * 2,两个链表是否相交 , * (两个链表都没有环)分析链表结构,如果相交,那么两个链表的尾节点必为同一个节点,只要分别遍历到两个链表的最后然后比较就可以了。原创 2015-01-26 21:11:23 · 583 阅读 · 0 评论 -
回溯算法总结
1,迷宫问题2,8皇后问题3,幂等问题public static void PowerSet(int i, List list, List li) { if (i > list.size() - 1) { System.out.println(li); } else { li.add(list.get(i));// 左加 Po原创 2015-01-29 21:15:18 · 601 阅读 · 0 评论 -
一些小算法(持续更新)
双栈实现队列原创 2014-11-04 20:55:00 · 627 阅读 · 0 评论 -
二叉树算法总结
1,求二叉树的深度package com.dong.istudy.btree;/** * 获取二叉树的深度 */public class BTreeDeep { public static void main(String[] args) { } public static int getDeep(BTreeNode root) { if (root == null)原创 2015-01-27 22:27:21 · 600 阅读 · 0 评论 -
动态规划问题
动态规划问题,package com.dong.alg.dp;/** * 求连续子数组的最大和 * @author cuihd * */public class MaxSumOfSubArray { public static void main(String[] args) { int[] array = {1,3,-4,7,0,-1,2}; int原创 2015-01-07 16:51:51 · 522 阅读 · 0 评论 -
简简单单的说明向量空间模型(VSM)
向量空间模型(VSM)即(Vector Space Model)。原创 2014-11-04 22:17:20 · 1062 阅读 · 0 评论 -
lucene中的vint类型,或者说是vint对int的压缩,及其在差值压缩中的应用
lucene索引中有许多数字(整形)需要存储,因此也就针对单个int进行了压缩处理。对于一个字节的8个bit,后7个bit表示实际的值,第一个bit表示后面是否还有其他的字节。比如:比如00000001 最高位表示0,那么说明这个数就是一个字节表示,有效位是后面的七位0000001,值为1。10000010 00000001 第一个字节最高位为1,表示后面还有字节,第二位最原创 2014-11-02 18:47:05 · 1052 阅读 · 0 评论 -
排序字符串的前缀压缩算法,结合lucene
排序的字符串如下:aba原创 2014-11-02 19:11:39 · 1686 阅读 · 0 评论 -
hash总结
hash算法:1,除法取余法,偶数和偶数相除为偶数,h(k) = k mod m; m记录不要是2的幂或者是10的幂,最好是质数原创 2014-10-29 21:19:33 · 691 阅读 · 0 评论 -
堆和优先级队列
堆的概念:如果将序列{k1 , k2 , … , kn}对应为一维数组,且序列中元素的下标与数组中下标一致,即数组中下标为 0 的位置不存放数据元素,此时该序列可看成是一颗完全二叉树,则堆的定义说明,在对应的完全二叉树中非终端结点的值均不大于(或不小于)其左右孩子结点的值。堆排序:原创 2014-10-28 19:41:29 · 537 阅读 · 0 评论 -
突然发现fibnacci数列数列
fibnacci数列大家都知道,可以非常直观的根据递归式完成代码原创 2014-10-23 20:43:30 · 708 阅读 · 0 评论 -
跳跃表(Skip List)
/**伪随机算法(xorshift RNG)但是可以满足需求,其主要采用异或和移位来实现参考文献http://www.jstatsoft.org/v08/i14/paper */ private int randomLevel() { int x = randomSeed; x ^= x x ^= x >>> 1原创 2013-09-07 16:51:58 · 974 阅读 · 0 评论 -
算法基础概念
最近在看网易公开课—算法导论,本想自己整理一下,但是还懒了,下面把一篇博客转载过来吧(主要是算法的一些基础概念和求解递归式)http://www.gocalf.com/blog/algorithm-complexity-and-master-theorem.html假设有两个函数f(n)和g(n),都是定义在正整数集上的正函数。上述四个记号的含义分别是:o f(n)转载 2013-09-01 21:58:01 · 645 阅读 · 0 评论 -
位图
位图(bitmap)大数据量的处理,使的越来越多的人对bitmap这种数据结构所熟悉。本文简单复习记录一下:基本思想及优点:1,位图可以使得我们检索数据可以像数组,hash那么迅速;2,位图以最少的存储空间来存储更多的数据(通常情况下是用于存储整数);3,位图以比特bit位来存储数据,因为其最小单元是bit,因此只能存储0或者是1。也就是只能保存两种状态,这通常原创 2013-08-12 20:36:20 · 634 阅读 · 0 评论 -
探究CRC32算法实现原理
转载于:http://blog.csdn.net/zhaodm/article/details/3711034What's CRC ?简而言之,CRC是一个数值。该数值被用于校验数据的正确性。CRC数值简单地说就是通过让你需要做处理的数据除以一个常数而得到的余数。当你得到这个数值后你可以将这个数值附加到你的数据后,当数据被传送到其他地方后,取出原始数据(可能在传转载 2015-10-29 11:01:24 · 1665 阅读 · 0 评论