随笔分类 - 数据结构与算法
摘要:原文:https://cloud.tencent.com/developer/news/387248 作者:一叶而不知秋 作为铺垫,我们先来介绍一些Bitmap的相关内容: 位图主要用于快速检索关键字状态,通常要求关键字是一个连续的序列(或者关键字是一个连续序列中的大部分), 最基本的情况,使用1b
阅读全文
摘要:原文:https://www.cnblogs.com/huangxincheng/archive/2012/11/25/2788268.html 很有段时间没写此系列了,今天我们来说Trie树,Trie树的名字有很多,比如字典树,前缀树等等。 一:概念 下面我们有and,as,at,cn,com这些
阅读全文
摘要:add by zhj: 在学习Lucene的存储结构时,看到其使用了FST,这篇文章写的不错。 trie,FSA,FST都是用来解决有限状态机的存储,trie是树,它进一步演化为FSA和FST,这两者是图 该文的原标题是“使用自动机来索引1,600,000,000个键”,我改了一下,原标题其实是 说
阅读全文
摘要:add by zhj: 不翻译了,自己看吧,不难。文章总结的不错 原文:http://dtkachenko.blogspot.com/2011/11/data-structures-and-algorithms-when-to.html?view=sidebar today we come to t
阅读全文
摘要:add by zhj: 算法其实不复杂,尤其是增加结点的算法,逻辑很简单,但有时自己想不到。 增加结点算法:首先,对于B树,没有重复结点,所以新插入的数据一定会落在叶结点上,或者说落在叶结点的所有父结点切分成的开区间上。 不断的增加结点时,一定会有某个开区间的关键字个数先达到上限数+1,这时需要对该
阅读全文
摘要:add by zhj: AVL树和红黑树都是平衡二叉树,虽然AVL树是最早发明的平衡二叉树,但直接把平衡二叉树等价于AVL树,我认为非常不合适。 但很多地方都在这么用。两者的比较如下 原文:https://blog.csdn.net/u010899985/article/details/809810
阅读全文
摘要:原文:http://www.cnblogs.com/vanezkw/archive/2012/07/02/2572799.html 对于android初学者应该都了解webView这个组件。之前我也是对其进行了一些简单的了解,但是在一个项目中不得不用webview的时候,发现了webview的强大之
阅读全文
摘要:add by zhj: 尾递归其实跟循环在代码形式上非常像,尾递归会同时用到反推和正推,由n->n-1是反推,由acc1, acc2 = acc2, acc1+acc2是正推。参见本文最后,分别用循环和尾递归实现Fibonacci数列。原文:http://www.nowamagic.net/libr...
阅读全文
摘要:http://flychao88.iteye.com/blog/1977653文章中介绍了常见的几种缓存淘汰策略 LRU:least recently used,最近最少使用算法。其实就是按使用时间倒排序,然后从尾部删除元素。它的使用场景是:在有限的空间中存储对象时,当空间满时,会按一定的原则删...
阅读全文
摘要:add by zhj: 通常有两类方法处理冲突:开放定址法和拉链法(链式地址法)。前者是将所有结点均存放在散列表T[0..m-1]中;后者通常是将互为同义词的结点链成一个单链表,而将此链表的头指针放在散列表T[0..m-1]中。原文:解决哈希表的冲突-开放地址法和链地址法1. 开放地址法这个方法的基...
阅读全文
摘要:作者:July、weedge、Frankie。编程艺术室出品。 说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。 出处:https://blog.csdn.net/v_J
阅读全文
摘要:原文:Hash表(C++实现)哈希表的几个概念:映像:由哈希函数得到的哈希表是一个映像。冲突:如果两个关键字的哈希函数值相等,这种现象称为冲突。处理冲突的几个方法:1、开放地址法:用开放地址处理冲突就是当冲突发生时,形成一个地址序列,沿着这个序列逐个深测,直到找到一个“空”的开放地址,将发生冲突的关...
阅读全文
摘要:原文:http://tech.meituan.com/lucene-distance.html1 地理空间距离计算面临的挑战打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是“离我最近”或者“智能排序”(如下图所示)。不管是“离我最近”还是“智能排序”,都涉及到计算用户位置与各个团购单子或...
阅读全文
摘要:add by zhj:介绍了什么是一致性hash,以及实现一致性hash的一种算法。原文:http://my.oschina.net/u/195065/blog/193614 目录[-]一致性hash算法(consistent hashing)1基本场景2 hash算法和单调性3 consisten...
阅读全文
摘要:一、算法抽象 它们一般是在具体算法的基础上总结、提炼、分析出来的,再反过来用于指导解决其它问题。它们适用于某一类问题的解决,用辩证法的观点看,抽象的算法和具体的算法就是抽象与具体、普遍性与特殊性、共性和个性的关系。马是白马的抽象,无论是白马还是红马,都是马,我们用马的唯一本质属性——染色体来决定一种...
阅读全文
摘要:add by zhj: 以备学习算法用原文:http://www.cnblogs.com/figure9/p/3708351.html#!comments关于严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数...
阅读全文
摘要:逻辑数据结构包括:线形结构、树形结构、图形结构、集合;存储结构包括:顺序存储、链式存储、索引存储、散列存储。 同一种逻辑结构可以有四种存储结构,不同的存储结构增、删、查、改的速度不同。逻辑结构与存储结构排列组合,就得到4*4=16种结构。 在C/C++中,栈和队列的常用实现方式为数组和链表,存储方式
阅读全文