数据结构
文章平均质量分 80
SprintfWater
My English name is SpringWater
展开
-
红黑树(red-black tree)算法,附AVL树的比较
导读: linux内核中的用户态地址空间管理使用了红黑树(red-black tree)这种数据结构,我想一定有许多人在这种数据结构上感到困惑,我也曾经为此查阅了许多资料以便了解红黑树的原理。最近我在一个外国网站上看到一篇讲解红黑树的文章,觉得相当不错,不敢独享,于是翻译成中文供所有内核版的弟兄们参考。由于本人水平有限,难免有出错之处,欢迎大家指正。 原文网址:http://sa转载 2012-12-17 18:47:02 · 5806 阅读 · 0 评论 -
个人对主席树算法的理解
首先借主席树发明人的一段话: ..这个东西是当初我弱不会划分树的时候写出来替代的一个玩意..被一小撮别有用心的人取了很奇怪的名字> < 想法是对原序列的每一个前缀[1..i]建立出一颗线段树维护值域上每个数的出现次数,然后发现这样的树是可以减的,然后就没有然后了 转载请注明出处,谢谢。 http://blog.csdn.net/sprintfwater/article/details原创 2013-06-24 15:17:01 · 15992 阅读 · 2 评论 -
POJ 2104(K-th Number-区间第k大-主席树)
..这个东西是当初我弱不会划分树的时候写出来替代的一个玩意..被一小撮别有用心的人取了很奇怪的名字> 想法是对原序列的每一个前缀[1..i]建立出一颗线段树维护值域上每个数的出现次数,然后发现这样的树是可以减的,然后就没有然后了 K-th Number Time Limit: 20000MS Memory Limit: 65536K转载 2013-06-23 19:58:53 · 6906 阅读 · 0 评论 -
hdu 4547 CD操作(金山居 LCA算法)
LCA算法:首先用CD ..回退到公共最近最现,再一次性到达目的地。 #include #include #include #include #include using namespace std; const int maxn = 100006; int dp[maxn][20], father[maxn], dep[maxn]; bool vis[maxn], mark原创 2013-05-17 21:15:26 · 2210 阅读 · 1 评论 -
我的划分树(详细 注解)
//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4251 /* hdu 4251 The Famous ICPC Team Again 别人的代码:(我自己的注解) 注解提供者:GHQ(SpringWater) 自己理解:划分树的思想是将序列按大小,二分位log2(n)层,每一层的信息放在t[d].val[i],(同一层的各部原创 2012-08-14 10:37:07 · 1134 阅读 · 1 评论 -
RMQ算法模板
#include #include #include #include #include #include #include using namespace std; #define maxs( a , b ) a>b?a:b #define mins( a , b ) a>b?b:a const int MAXN = 100005; int d[MAXN]; int dpmin[转载 2013-05-17 23:17:22 · 939 阅读 · 0 评论 -
MySQL API访问mysql数据库
最近打算写一套OA系统,为了方便进行数据库操作,特意抽出一周的时间来研究C/C++访问各种数据库的方法,并打算封装一套数据库操作类,现在奉上最简单的一部分:在Linux下访问MySQL数据库。 本文中使用的MySQL API代码为C语言,如果各位对C++有兴趣,可以考虑使用mysql++。 一、配置开发环境 首先需要编译、安装MySQL,安装完成后,将MySQL目录中的l转载 2012-12-19 17:06:27 · 792 阅读 · 0 评论 -
Size Balanced Tree(SBT)
转载:http://www.nocow.cn/index.php/Size_Balanced_Tree 性质 Size Balanced Tree(SBT)是一种通过大小(Size)域来保持平衡的二叉搜索树,它也因此得名。它总是满足: 对于SBT的每一个结点 t: 性质(a) s[right[t] ]≥s[left[left[t]]],s[right[left[t]]]性质(b转载 2012-12-18 21:02:49 · 4464 阅读 · 0 评论 -
SB tree (Size Balanced Tree)
转载:http://www.clarkok.com/blog/?p=347#more-347 采取网友建议,写一下SB Tree。 ============================================================================ 所谓SB,并不是傻X,而是Size Balanced的意思的。本人也比较建议使用,因为写起来比较简单。这转载 2012-12-18 18:02:54 · 4428 阅读 · 0 评论 -
红黑树
转载:http://hi.baidu.com/20065562/item/8ba7d823d1310d172b0f1caf 红黑树由来: 他是在1972年 由Rudolf Bayer发明的,他称之为“对称二叉B树”,它现代的名字是Leo J. Guibas和 Robert Sedgewick 于1978 年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况转载 2012-12-17 18:44:21 · 956 阅读 · 0 评论 -
Treap tree
作者:Dong |可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/structure/treap/ 1. 概述 同splay tree一样,treap也是一个平衡二叉树,不过Treap会记录一个额外的数据,即优先级。Treap在以关键码构成二叉搜索树的同时,还按优先级来满足堆的性质。因而,Treap=tree+hea转载 2012-12-17 18:35:56 · 682 阅读 · 0 评论 -
splay tree(伸展树)
完整代码: 代码 #include #include int size; //结点数量 #define NUM 20 typedef struct tree_node{ struct tree_node* left; struct tree_node* right; int item; }tree_no转载 2012-12-17 18:23:50 · 692 阅读 · 0 评论 -
十道海量数据处理面试题
第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多转载 2013-10-07 10:49:56 · 1283 阅读 · 0 评论