随笔分类 -  数据结构

摘要:原文传说中的划分树,只闻其名未见其身。然后搜索了一下划分树的资料,擦擦擦,这不就是同快排的原理+线段树的操作,两者一融合进化成了划分树么。前面两个都会,学习起来倍感轻松。建树过程: 先对区间[1,n]内所有元素进行排序,未排序之前的数列赋值给线段树的第一层元素(tree[0][i]),然后就是同快排... 阅读全文
posted @ 2015-08-24 23:18 无道圣君 阅读(200) 评论(0) 推荐(0)
摘要:1.概述: 堆的概念:堆是一种完全二叉树,其高度为log(n),可以用一维数组来实现。堆中存储的数据是局部有序的。可分为两种堆:最大顶堆和最小顶堆。 最大顶堆:任意一个结点的值都大于等于其任意一个子结点的值。 最小顶堆:任意一个结点的值都小于等于其任意一个子结点的值。可以发现,堆的罗辑结构是树... 阅读全文
posted @ 2015-04-09 15:24 无道圣君 阅读(742) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/ws5167/p/3903970.html 树状数组主要用于快速的更改某个点的值和查询某个区间的和,是一种比较小巧的数据结构.先看下图: 假设数组A[]是我们要操作的对象,则数组C[]则是数组A[]相对应的树状数组.观察上图,我... 阅读全文
posted @ 2015-03-28 23:33 无道圣君 阅读(176) 评论(0) 推荐(0)
摘要:动态字典树每次都要new一个内存来操作,所以耗时也是较多的;所以我们可以先一次性开辟出足够的空间,然后模拟动态字典树的创建查找过程来写出相应的静态字典树。代码都差不多,主要是你得先学会了动态字典树;接下来的事情就是模拟了,,,模拟,,模拟。结构定义:struct Trie{ int... 阅读全文
posted @ 2015-03-13 14:41 无道圣君 阅读(335) 评论(0) 推荐(0)
摘要:本文转自于:http://www.cnblogs.com/tanky_woo/archive/2010/09/24/1833717.html代码部分有改动。 字典树: 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),... 阅读全文
posted @ 2015-03-12 20:45 无道圣君 阅读(479) 评论(0) 推荐(0)