数据结构&算法
文章平均质量分 79
StonyConfident
计算机学科,软件到头是数学,硬件到头是物理
展开
-
C++ STL中map容器总结
map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会转载 2016-09-01 12:24:01 · 488 阅读 · 0 评论 -
C++ STL中set容器总结
STL中的set容器总结1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等。在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常转载 2016-09-01 12:04:58 · 455 阅读 · 0 评论 -
两种平衡二叉树的比较: AVL树和红黑树
1 好处 及 用途 红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作。此外,由于它的设计,任何不平衡都会在三次旋转之内解决。当然,还有一些更好的,但实现起来更复杂的数据结构 能够做到一步旋转之内达到平衡,但红黑树能够给我们一个比较“便宜”的解决方案。红转载 2016-09-01 11:43:50 · 1894 阅读 · 0 评论 -
B树,B-树,B+树,B*树
B树 即二叉搜索树(BST): 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么转载 2016-08-31 10:29:54 · 254 阅读 · 0 评论 -
字符串匹配,KMP算法
0、废话 一直ym传说中的kmp算法能以最坏线性的时间复杂度搞定字符串匹配,开始动手看才知道kmp中的K居然是Donald.E.Knuth,《计算机程序设计艺术》的作者。好吧,继续ym……1、传统的字符串匹配算法/* * 从s中第sIndex位置开始匹配p * 若匹配成功,返回s中模式串p的起始index * 若匹配失败,返回-1 */int index转载 2016-08-29 18:23:09 · 451 阅读 · 0 评论