
数据结构与算法
马万明
一生的努力奋斗
一生的幸福充实
展开
-
算法与数据结构笔记四
摘录From大话数据结构。 1.图 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常标示为:G(v,e),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 需要注意的是,线性表中我们把数据元素叫做元素,树中将数据元素叫结点,在图中数据元素,我我们则称之为 订单(Vertex).顶点的集合V有穷非空的。 无向边:若顶点v1到v2之转载 2015-03-26 13:20:29 · 471 阅读 · 0 评论 -
字符串匹配的Boyer-Moore算法
转载 2016-01-13 09:42:35 · 511 阅读 · 0 评论 -
KMP算法
转载 2016-01-13 09:11:16 · 477 阅读 · 0 评论 -
Trie树
转载自http://blog.youkuaiyun.com/hguisu/article/details/8131559 1. 什么是trie树 1.Trie树 (特例结构树) Trie树,又称单词查找树、字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜转载 2015-06-12 14:11:38 · 419 阅读 · 0 评论 -
最大堆,最小堆插入/删除以及最大堆的排序
先说一下最大堆如何排序:转自:http://www.cnblogs.com/luchen927/archive/2012/03/08/2381446.html前一阵子一直在写排序的系列文章,最近因为一些事情耽搁了几天,也穿插了几篇其他类别的随笔。今天还是回到排序上面来,善始善终,呵呵。今天要介绍的也是一种效率很高的排序——堆排序思想堆排序,顾名思义,就是基于堆。因此先来介绍一下堆的转载 2015-06-12 17:10:09 · 7897 阅读 · 2 评论 -
Hash树
我们选择质数分辨算法来建立一棵哈希树。选择从2开始的连续质数来建立一个十层的哈希树。第一层结点为根结点,根结点下有2个结点;第二层的每个结点下有3个结点;依此类推,即每层结点的子节点数目为连续的质数。到第十层,每个结点下有29个结点。如下图所示:同一结点中的子结点,从左到右代表不同的余数结果。例如:第二层结点下有三个子节点。那么从左到右分别代表:除3余0,除3余1,转载 2015-06-16 14:22:42 · 718 阅读 · 0 评论 -
100楼层和两个玻璃球
有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层???2012年腾讯实习生笔试的时候,有一个智力题跟这个一样,只不过就是描述不一样而已。我记得大概是这样:1到100之间有一个数字,一个人猜,另外一个人给一些辅助信息,如果这个人猜的数比指定的数小,则会告诉他小了,如果比指定的数大了,则会告诉转载 2015-04-28 14:39:55 · 8195 阅读 · 0 评论 -
算法与数据结构学习二
1.两个栈共享空间 栈在存储上有线性表结构的栈和链表结构的栈。对于线性表结构的栈,我们有点小技巧:用同一个数组来存储两个栈,数组有两个端点,两个栈有两个栈底,让一个栈的栈底为数组的始端,即下标为0处,另一个栈为栈的末端,即下标为数组长度n-1处。这样,如果两个栈增加元素,就是两端点向中间眼神。 这种空间效率利用增加,但是使用场景一般是两个栈的空间需求有相反关转载 2015-03-25 10:39:15 · 462 阅读 · 0 评论 -
数据结构与算法笔记一
1.写个程序计算 1+2+3 +。。+100,你会怎么写?很明显是个等差数列所以直接用 n*(n+1)/2来实现,避免循环,在数据量特别大的时候,效果比较高,有点比较明显。2.算法时间复杂度算法的时间复杂度,也就是算法的时间量度,记作:t(n)=0(f(n)). o(1)代表常数阶,o(n)代表线性阶,o(n^2)代表平方阶。具体推导时间复杂度的方法:1.用常数1取翻译 2015-03-24 16:00:33 · 724 阅读 · 0 评论 -
Chord算法
Chrod算法是P2P中的四大算法之一,是有MIT(麻省理工学院)于2001年提出,其他三大算法分别是:CANPastryTapestryChord的目的是提供一种能在P2P网络快速定位资源的的算法,Cord并不关心资源是如何存储的,只是从算法层面研究资源的取得,因此Chord的API就简单到只有一个set、get。1、Chord是什么?Chord是一个算法,也是一转载 2016-08-05 09:30:29 · 963 阅读 · 0 评论