高级数据结构
月亮很亮1395
还在翻越技术的山,走呀走,爬呀爬。
展开
-
倒排索引的实现
概念:倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。 倒排文件: 倒排列表用来记录有哪些文档包含了某个单词。一般在文档集...原创 2018-07-24 00:15:55 · 2428 阅读 · 0 评论 -
送快递的最短路线
题目描述:某物流派送员p,需要给a、b、c、d4个快递点派送包裹,请问派送员需要选择什么的路线,才能完成最短路程的派送。假设如图派送员的起点坐标(0,0),派送路线只能沿着图中的方格边行驶,每个小格都是正方形,且边长为1,如p到d的距离就是4。随机输入n个派送点坐标,求输出最短派送路线值(从起点开始完成n个点派送并回到起始点的距离)。首先拿到题目后思考问题,跟背包 问题很像,有...原创 2018-07-20 18:11:14 · 5191 阅读 · 0 评论 -
字典树的Java实现
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。时间复杂度O(m)m为单词字母的个数;数据结构:class TrieNode { char da...原创 2018-07-24 00:18:11 · 356 阅读 · 0 评论 -
跳跃表
跳跃表相对与其它高级数据的优势在学习了有关于平衡树的数据结构,但是代码实现方面有一定复杂度,相对来说跳跃表它独有的有优势,实现起来没有那么复杂,只要熟悉链表的代码,写起来比AVL,BST,RBtree,简单很多;它的时间复杂度log(n),空间复杂度O(n)跳跃表的特征 由很多层结构组成 每一层都是一个有序的链表 最底层(Level 1)的链表包含所有元素 如果一个元素出现在...原创 2018-07-24 00:18:50 · 163 阅读 · 0 评论 -
红黑树的插入
上一节总结了红黑树的基本特性和它的删除,这一节总结红黑树的插入,其实与删除也类似,无论是插入还是删除,在节点增加和减少后要保证红黑的各个子树依旧满足红黑树的特性。 为不影响树根节点到叶子节点上黑色节点的个数相同,插入的节点都是红色X,记X的父节点为Y,叔叔节点为Z,祖父节点为F,如果Y为黑色就不用进行调整,如果Y为红色则需要调整,分为一下三种情况:(1)Z为红色,如图掉换一...原创 2018-07-20 14:42:12 · 141 阅读 · 0 评论 -
红黑树的删除
R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)红黑树的特性:每一个节点都是有颜色的不是黑色就是红色 root节点必须是黑色 所有的叶子节点是null,黑色 每个黑色的节点必须有两个红色的子节点,或者说不能有两个连续的红色节点 从任一节点到其子树的叶子节...原创 2018-07-19 12:41:41 · 1012 阅读 · 0 评论