
数据结构和算法
文章平均质量分 61
Run_Maybe
人生多经历一些坎坷,未必就是一件坏事
展开
-
(转)动态图详解 二叉搜索树
刚看到的一篇特别不错的文章,非常生动形象,转载过来,顺便改一点原作者马虎的地方 = =!,原地址:https://lufficc.com/blog/binary-search-tree在计算机科学中,二叉搜索树(Binary Search Tree)(有时称为有序或排序的二叉树)是一种能存储特定数据类型的容器。二叉搜索树允许快速查找、添加或者删除某一个节点,并且它是动态的集合。 二叉搜索树按照关键转载 2017-02-25 19:43:39 · 519 阅读 · 0 评论 -
(一)KMP算法的DFA解法
简单说一下,KMP是一个时间复杂度O(n+m)的字符串匹配算法,网上也有很多其他的解法,比如next数组的解法,推荐看这里匹配的思路DFA:确定有限自动状态机 以下是ABABAC的对应的DFA: 1.假设文本为txt,待匹配的子串为pat。2.未匹配是状态0,此时如果条件A(匹配到了txt的字符‘A‘),会到状态1,如果是条件B、C或其他的条件,还是状态0。如果经历了匹配ABABA之后到达状态5原创 2017-03-19 23:54:40 · 1716 阅读 · 1 评论 -
(三)Rabin-Karp字符串查找算法
不同于传统的字符比较,本算法的核心在于散列。 先计算出子串 pat 的一个散列值,然后从文本 txt 中,从 i = 0 开始,计算从当前 i 开始的子串长度的字符串的散列,比如 pat = ‘250’,txt = ‘230240250’,计算的是 ‘230’、’302’、’024’的散列,依次类推,与’250’的散列值进行比较,如果散列值相同,再比较两个字符串是否匹配,当然会有散列冲突,但是可以原创 2017-04-03 01:08:41 · 469 阅读 · 1 评论 -
(二)Boyer-Moore字符串查找算法
这是一种类似于KMP但是更高效一点、也更简单一些的字符串查找算法,大体的思路是从右往左扫描,例如在txt = ABCBCDCDE中查找模式串pat = BCD,ABCBCDCDEBCD从右往左,第一个比较的字符是 C 和 D ,不匹配,C 在 BCD 里出现的所有位置中最靠右是 1,那么 BCD 右移 1 位,比较 B 和 D ,ABCBCDCDE BCD不匹配,B 在 BCD里出现的所有位置中原创 2017-03-26 21:30:06 · 464 阅读 · 0 评论 -
B树、B+树、B*树、R树
从B树、B+树、B* 树谈到R树 转载出处:http://blog.youkuaiyun.com/v_JULY_v 。写的很好的一篇文章,可能需要多看几遍 。。。第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Bl转载 2017-11-24 16:07:49 · 403 阅读 · 0 评论