
数据结构
文章平均质量分 92
pi9nc
这个作者很懒,什么都没留下…
展开
-
零零散散学算法之详解RMQ & LCA
2第一节 RMQ、LCA概述 LCA:Lowest Common Ancestor,译为最近公共祖先。其解释就是说:在有根树中,找出树中任意两个节点最近的公共祖先,或者说找到任意两个节点离树根最远的公共祖先。 RMQ:Range Minimum Query,译为区间最小值查询。其解释就是说:对于含有N个元素的数列A,在数列中找转载 2012-11-02 21:58:07 · 2926 阅读 · 2 评论 -
数据结构之线段树
数据结构之线段树Category: 数据结构与算法 View: 13,459 阅 Author: Dong作者:Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://dongxicheng.org/structure/segment-tree/1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条转载 2012-11-04 18:23:16 · 677 阅读 · 0 评论 -
C#技术漫谈之垃圾回收机制(GC)
C#技术漫谈之垃圾回收机制(GC)作者: spring yang 来源: 博客园 发布时间: 2011-09-18 23:17 阅读: 7225 次 推荐: 7 原文链接 [收藏] 摘要:今天我们漫谈C#中的垃圾回收机制,本文将从垃圾回收机制的原理讲起,希望对大家有所帮助。 GC的前世与今生 虽然本文是以.NET作为目标转载 2013-01-20 20:51:16 · 638 阅读 · 0 评论 -
图论--强连通分支
有向图的强连通分支在有向图G中,如果任意两个不同的顶点相互可达,则称该有向图是强连通的。有向图G的极大强连通子图称为G的强连通分支。把有向图分解为强连通分支是深度优先搜索的一个经典应用实例。下面介绍如何使用两个深度优先搜索过程来进行这种分解,很多有关有向图的算法都从分解步骤开始,这种分解可把原始的问题分成数个子问题,其中每个子子问题对应一个强连通分支。构造强连通分支之间的联系也就把子问题的转载 2013-03-06 10:37:15 · 22774 阅读 · 0 评论 -
图论基础
2009-11-29 03:57 399人阅读 评论(1) 收藏 举报算法eachgraphsortingtree扩展图的表示法图G = (V, E)的表示有邻接表和邻接矩阵两种形式。通常,对于| E |远小于| V | ^ 2的稀疏图,用邻接表比较合适。若图稠密或很小,或必须很快判别给定的两个顶点是否存在连接的边时,通常用邻接矩阵表示法。 关键点(Articulation转载 2013-03-13 16:16:40 · 807 阅读 · 0 评论 -
循环数组
浅谈循环数组 (2012-03-27 15:55:34)转载▼ 标签: 循环数组分类: 信息学注明:在用于数组的循环移动编程很简洁以前我们学习数组的时候是有开始点跟结束点的线性数组,有一种数组是没有明确结束点的数组,任何一点都可以是开始点又可以是结束点,这种数组是循环数组。如下图:转载 2013-03-19 08:37:58 · 6689 阅读 · 0 评论 -
程序员编程艺术:三之三续、求数组中给定下标区间内的第K小(大)元素
程序员编程艺术:三之三续、求数组中给定下标区间内的第K小(大)元素分类: 11.TAOPP(编程艺术) 13.TAOPP array 19.TAOPP algorithms2011-05-28 17:34 17621人阅读 评论(35) 收藏 举报编程算法测试数据结构存储面试 第三章三续、求数组中给定下标区间内的第K小(大)元素转载 2013-03-19 16:21:42 · 1029 阅读 · 0 评论 -
从Trie树(字典树)谈到后缀树(10.28修订)
从Trie树(字典树)谈到后缀树(10.28修订)分类: 24.data structures 16.TAOPP tree2011-10-22 20:34 47348人阅读 评论(57) 收藏 举报算法数据结构constructiontreenull数据库目录(?)[+] 从Trie树(字典树)谈到后缀树转载 2013-03-19 17:20:57 · 773 阅读 · 0 评论 -
从B树、B+树、B*树谈到R 树
从B树、B+树、B*树谈到R 树分类: 24.data structures2011-06-07 17:52 102865人阅读 评论(261) 收藏 举报磁盘数据结构存储tree数据库insert从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其转载 2013-03-19 17:22:21 · 641 阅读 · 0 评论 -
字符串的匹配 -KMP
教你初步了解KMP算法 作者: July 、saturnma、上善若水。 时间; 二零一一年一月一日-----------------------本文参考:数据结构(c语言版) 李云清等编著、算法导论引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。本文由简单的字符串匹转载 2013-03-24 20:36:57 · 1527 阅读 · 0 评论 -
线段树,树状数组
线段树博客分类: 算法线段树的构造思想 线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。每一个叶子节点表示了一个单位区间。对于每一个非叶结点所表示的结点[a,b],其左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2,b]。 例如: 线段树的运用 线段树的每个节点上往往都增加了一些其他的域。在这些域中保转载 2013-04-09 20:18:17 · 4666 阅读 · 3 评论 -
A* (路径搜索)算法导引
A* (路径搜索)算法导引前言:A*算法是路径搜索中的经典算法,也是公认的最优算法之一,网上找到一篇文章讲的很好,适合入门,所以翻译了一下,没有完全参照原文,主要还是意译,网上也有其他人翻译好的,个人觉得还是自己来一遍比较好,读者自斟:原文开始:搜索区域这里假设有人要从A点去往B点,另外有一面墙将两者分开。如下图所示,绿色方块代表A点,红色方块代表B点,蓝色代表分开他们的墙转载 2013-04-09 20:23:50 · 6072 阅读 · 0 评论 -
数据结构-线性表
数据结构-线性表分类: c/c++ 数据结构与算法2012-06-18 16:27 720人阅读 评论(0) 收藏 举报数据结构list存储pivotstruct语言目录(?)[+]1. 线性表:n个数据元素的有序集合。线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来转载 2013-04-27 16:25:13 · 808 阅读 · 0 评论 -
二叉树
平衡树——特点:所有结点左右子树深度差≤1排序树——特点:所有结点“左小右大字典树——由字符串构成的二叉排序树判定树——特点:分支查找树(例如12个球如何只称3次便分出轻重)带权树——特点:路径带权值(例如长度)最优树——是带权路径长度最短的树,又称 Huffman树,用途之一是通信中的压缩编码。1. 二叉排序树(二叉查找树 Binary Searc转载 2013-04-27 16:26:32 · 1255 阅读 · 0 评论 -
查找 -数据结构
查找 -数据结构分类: 数据结构与算法 c/c++2012-07-24 16:17 614人阅读 评论(0) 收藏 举报几种查找算法:顺序查找,折半查找,分块查找,散列表一、顺序查找的基本思想: 从表的一端开始,向另一端逐个按给定值kx 与关键码进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与kx 相同的关键码,则查找失败,给出转载 2013-04-27 16:29:28 · 764 阅读 · 0 评论 -
(并查集+欧拉通路)
HDU/HDOJ 1116 Play on Words(并查集+欧拉通路)题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1116离散数学的知识,囧,这一块没怎么学,基础很薄弱啊。不过对于欧拉回路/通路的结论,倒是不难推出。欧拉通路:除首尾结点外,其余结点入度等于出度,起点出度减入度等于1,终点入度转载 2013-05-17 23:15:46 · 652 阅读 · 0 评论 -
Catalan 数
Catalan 数Filed under: Article,My ACM-ICPC Career — 标签acm — OWenT @ 下午 4:47Catalan 数:h(1)=1,h(0)=1h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (其中n>=2)h(n)=C(2n,n)/(n+1) (n=1,2,3,…)转载 2013-05-18 10:37:13 · 719 阅读 · 0 评论 -
树
5. 树树 广义树概念子节点表描述方法树的“左子节点/右兄弟节点”描述方法 本章将扩展前几章的内容,讨论一种较为复杂的数据结构,即树(tree)结构。前面所讨论的线性表、堆栈等数据结构中,跟每个节点相连的节点的个数都是有限的。本章讨论的树结构中,节点可以有任意数目的子节点。这转载 2013-05-08 10:18:30 · 831 阅读 · 0 评论 -
节点大小平衡树
维基百科,自由的百科全书(重定向自Size Balanced Tree)节点大小平衡树( Size Balanced Tree,缩写:SBT)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构。它是由中国广东中山纪念中学的陈启峰发明的。陈启峰于2006年底完成论文《Size Balanced Tree》,并在2007年的全国青少年信息学奥林匹克竞赛冬令营中发表。转载 2013-05-08 19:56:35 · 2515 阅读 · 0 评论 -
A New Approach to the Maximum Flow Problem
A New Approach to the Maximum Flow Problem By NilayVaishTopCoder MemberIntroductionThis article presents a new approach for computing maximum flow in a graph. Previous articles h转载 2013-05-23 19:37:12 · 1847 阅读 · 0 评论 -
【完全版】线段树
【完全版】线段树很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时觉得挺自豪的,还去pku打广告,但是现在我自己都不太好意思去看那篇文章了,觉得当时的代码风格实在是太丑了,很多线段树的初学者可能就是看着这篇文章来练习的,如果不小心被我培养出了这么糟糕的风格,实在是过意不去,正好过几天又要给集训队讲解线段树,所以决定把这些题目重新写一遍,顺便把近年我接触到的一些新题更转载 2013-05-10 16:23:53 · 707 阅读 · 0 评论 -
d叉堆
d叉堆分类: 算法导论习题2011-03-08 20:57 880人阅读 评论(7) 收藏 举报exchangeinsertc6-2 对d叉堆的分析 d叉堆有与二叉堆很类似,但(一个可能的例外是)其中的每个非叶结点有d个子女,而不是2个。 a)如何在一个数组中表示一个d叉堆? b)含n个元素的的叉堆的高度是多少?转载 2013-05-30 15:52:09 · 1035 阅读 · 0 评论 -
线段树 划分树 合并树 解题报告
【原】 POJ 2104 K-th Number 线段树 划分树 合并树 解题报告作者:Allen Sun | 出处:博客园 | 阅读226次 2011/11/14 2:02:15 http://poj.org/problem?id=2104方法: 1、划分树,是平衡树:数组排序nlgn,建树nlgn,m次查询mlgn,总复杂度为O(nlgn+m转载 2013-05-30 22:01:45 · 977 阅读 · 0 评论 -
顺序统计树
顺序统计树分类: 算法导论习题2011-06-06 23:24 878人阅读 评论(3) 收藏 举报数据结构算法 在包含n个元素的无序集合中,寻找第i个顺序统计量的时间复杂度为O(n)。通过建立一种特定的结构,可以使得任意的顺序统计量都可以在O(lgn)的时间内找到。这就是下面会提到的基于红黑树的顺序统计树。 相比于基础的数据结构,顺转载 2013-05-29 23:18:12 · 2555 阅读 · 1 评论 -
递归与尾递归
前言:今天上网看帖子的时候,看到关于尾递归的应用(http://bbs.youkuaiyun.com/topics/390215312),大脑中感觉这个词好像在哪里见过,但是又想不起来具体是怎么回事。如是乎,在网上搜了一下,顿时豁然开朗,知道尾递归是怎么回事了。下面就递归与尾递归进行总结,以方便日后在工作中使用。1、递归 关于递归的概念,我们都不陌生。简单的来说递归就是一个函数直接或间接地调转载 2013-05-30 15:48:31 · 1038 阅读 · 0 评论 -
划分树的用法(一):查询区间第K大值值(poj2104)
划分树的用法(一):查询区间第K大值值(poj2104)2012-09-28 09:05:22标签:划分树 poj2104 动态区间求Kth值原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://sbp810050504.blog.51cto.com/2799422/1008930 可能是我太转载 2013-05-30 22:20:46 · 2433 阅读 · 0 评论 -
算法导论8.3-4 O(n)时间内对[0..n^-1]之间的n个数排序
算法导论8.3-4 O(n)时间内对[0..n^-1]之间的n个数排序分类: 算法导论2012-06-23 11:27 323人阅读 评论(0) 收藏 举报算法deletec目录(?)[+]一、题目如何在O(n)时间内,对0到n^2-1之间的n个整数进行排序 二、思路把整数转换为n进制再排序,每个数有两转载 2013-05-31 16:22:05 · 1033 阅读 · 0 评论 -
算法导论-14-1-最大重叠点
算法导论-14-1-最大重叠点分类: 算法导论2012-08-27 20:21 479人阅读 评论(0) 收藏 举报题目:假设希望对一组区间记录一个最大重叠点,亦即覆盖它的区间最多的那个点。a)证明:最大重叠点总存在于某段的端点上。b)设计一数据结构,能有效地支持操作INTERVAL-INSERT,INTERVAL-DELETE和返回最大重叠点操作F转载 2013-05-31 15:53:07 · 3076 阅读 · 0 评论 -
算法导论-14.3-7-O(nlgn)时间求矩形集合中重叠矩形的个数
算法导论-14.3-7-O(nlgn)时间求矩形集合中重叠矩形的个数分类: 算法导论2012-08-26 21:16 446人阅读 评论(6) 收藏 举报目录(?)[+]一、题目二、思考采用红黑树作为基础数据结构,扩展为14.3中的区间树。第一步:对每个矩形的左边x和右边x排序,排序转载 2013-05-31 15:54:56 · 1433 阅读 · 0 评论 -
算法导论-14-2-Josephus排列
算法导论-14-2-Josephus排列分类: 算法导论2012-08-28 11:00 445人阅读 评论(0) 收藏 举报题目:Josephus问题的定义如下:假设n个人排成环形,且有以正整数m。a)假设m为整数。请描述一个O(n)时间的算法,使之对给定的整数n,输出(n, m)-Josephus排列。b)假设m不是个常数。请描述一个O(nlgn)时转载 2013-05-31 15:56:40 · 1050 阅读 · 0 评论 -
O(n)时间求最接近中位数的k个数
算法导论 9.3-7 O(n)时间求最接近中位数的k个数2012-06-25 14:51 279人阅读 评论(0) 收藏 举报算法insert题目:给出一个O(n)时间的算法,在给定一个有n个不同数字的集合S以及一个正整数k思考:step1:求出数组的中位数的值O(n)step2:计算数组每个数与中位数差的绝对值,存于另一个数组B中O转载 2013-05-31 16:14:32 · 1805 阅读 · 0 评论 -
算法导论-8-3-排序不同长度的数据项
算法导论-8-3-排序不同长度的数据项分类: 算法导论2012-06-23 15:14 298人阅读 评论(2) 收藏 举报算法deletestringc测试ie目录(?)[+]一、题目a)给定一个整数数组,其中不同的整数中包含的数字个数可能不同,但是该数组中,所有整数中总的数字数为n。说明如何在O(n)时间内对该数组进行转载 2013-05-31 16:18:04 · 844 阅读 · 0 评论 -
算法导论-12-2-基数树
算法导论-12-2-基数树分类: 算法导论2012-07-05 18:50 471人阅读 评论(0) 收藏 举报题目:给定两个串a = a0a1……ap和b = b0b1……b1,其中每一个ai和每一个bj都属于某个有序字符集,如果下面两条规则之一成立,则说串a按字典序小于串b:1)存在一个整数j,02)p例如,如果a和b是位串,则根据规转载 2013-05-31 16:19:18 · 1040 阅读 · 0 评论 -
各种树
各种树结构发表于 2011-09-16满二叉树 满二叉树是每一层上的所有结点数都达到最大值的二叉树。深度为m的满二叉树有2^m-1个结点完全二叉树 完全二叉树除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。完全二叉树来说的叶子结点只可能在层次最大的两层上出现,对于任何一个结点,若其右分支下的子孙结点的最大转载 2013-06-09 21:27:21 · 1004 阅读 · 0 评论 -
顺序统计树求逆序对 O(nlgn)
算法导论 14.1-7 顺序统计树求逆序对 O(nlgn)分类: 算法导论2012-07-09 21:34 542人阅读 评论(4) 收藏 举报算法treeinsertosstructnull目录(?)[+]一、题目说明如何在O(nlgn)的时间内,利用顺序统计树对大小为n的数组中的逆序对(见思考题2-4)进行计数。转载 2013-05-31 16:51:46 · 1897 阅读 · 0 评论 -
算法导论-9-2-c-带权中位数
算法导论-9-2-c-带权中位数分类: 算法导论2012-06-25 20:24 509人阅读 评论(0) 收藏 举报算法insert算法导论-9-2其它题目见第9章 排序和顺序统计学 题目:说明如何利用一个线性时间的中位数算法(如9.3节中的SELECT),来在最坏情况下O(n)时间内求出n个数的带权中位数思考:step转载 2013-05-31 16:52:51 · 1243 阅读 · 0 评论 -
AC自动机算法
AC自动机算法分类: 算法总结2011-11-23 09:04 2609人阅读 评论(0) 收藏 举报算法null数据结构优化测试AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你转载 2013-04-29 16:04:08 · 1363 阅读 · 0 评论 -
第二小元素
一、题目证明:在最坏情况下,利用n+ceil(lgn)-2次比较,即可得到n个元素中的第2小元素。(提示:同时找最小元素)二、思考step1:对所有元素,两个一组比较大小,小的一个进入下一轮比较。一直到比较出最小的元素。此时所有比较结果构成一棵二叉树。比较次数为n-1。step2:沿着树从树根向下到叶子,找出第二小的元素,比较次数是ceil[转载 2013-05-31 17:08:05 · 745 阅读 · 0 评论 -
算法导论-13-1-持久动态集合
算法导论-13-1-持久动态集合分类: 算法导论2012-08-24 14:30 282人阅读 评论(0) 收藏 举报算法treeinsertc题目:答:a)需要改变的结点包括“从根结点开始,到要插入到删除的结点”的这条路径上的所有结点。b)[cpp] view转载 2013-05-31 17:14:51 · 886 阅读 · 0 评论 -
Write a method that returns all subsets of a set.
Cracking the coding interview--Q8.3January 10, 2013作者:Hawstein出处:http://hawstein.com/posts/8.3.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。题目转载 2013-06-11 23:33:37 · 791 阅读 · 0 评论