摘要: 排序 排序分为内排序和外排序 内排序三个重要指标 排序分类 冒泡排序 在升序的情况下,相邻的两个元素比较,较大的交换到前面 时间复杂度 O(n²) 简单选择排序 在升序的情况下,每一次遍历都找到该次遍历最大值 时间复杂度O(n²) 性能略优于冒泡 直接插入排序 将一个元素插入到已经排好序的有序表中 阅读全文
posted @ 2017-07-17 13:10 ulysses_you 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 定义 以下简称hahs 应用场景 适合查找与给定值相同的数据,不适合做范围查找,1对多映射查找 问题 冲突,散列表的理论依据是每个不同的关键字通过散列算法得到的结果都是唯一的,而现实中有可能出现几个结果相同的关键字。 hash算法 构造一个散列算法考虑几个方面 直接定址法 按如下公式计算出关键字的h 阅读全文
posted @ 2017-07-14 08:33 ulysses_you 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 之前的二叉排序树,平衡二叉树都是基于二叉树的实现,但是在搜索过程中,效率和树的深度有关,所以就想到把二叉树改为多叉树,B树和B+树都基于多叉树的实现 多路查找树 B树 定义 应用场景 B+树 涉及到遍历的场景,B树就有明显缺陷了,需要类似树的中序遍历,而这样的IO开销是很大的,从而就引出了B+树 定 阅读全文
posted @ 2017-07-12 09:16 ulysses_you 阅读(244) 评论(0) 推荐(1) 编辑
摘要: 二叉排序树的增加和查找都是很简单的,对其的中序遍历就是得到排序结果。 删除操作比较复杂,大致分成4种情况 1.删除的结点无孩子结点 2.删除的结点只有左孩子 3.删除的结点只有右孩子 4.删除的结点既有左孩子又有右孩子 当是第4种情况时,可以用删除结点的前驱或者后继来顶替它的位置,代码中使用了前驱结 阅读全文
posted @ 2017-07-07 08:47 ulysses_you 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 定义 种类 顺序表查找 时间复杂度O(n) 有序表查找 二分查找 时间复杂度O(logn) 插值查找 二分查找的优化版,每次不二分,而是采用关键字与最大最小值比较后再查找 时间复杂度O(logn) 斐波那契查找 时间复杂度O(logn) 线性索引查找 按照结构分可以分为线性、树形、多级索引 稠密索引 阅读全文
posted @ 2017-07-07 08:41 ulysses_you 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 概述 ES支持groovy 和 java两种语言自定义score的计算方法,groovy甚至可以嵌套在请求的参数中,有点厉害,不过不在本篇讨论范围。 如何用自定义的java代码来定义score如何产生,这用到了ES的插件功能 关于es插件的相关操作,可以通过以下命令获得 ./bin elastics 阅读全文
posted @ 2017-06-22 19:09 ulysses_you 阅读(3332) 评论(0) 推荐(1) 编辑
摘要: 定义 定义解释 下图就是一张典型的图 图术语定义 无向边:若顶点vi到vj之间的边没有方向,则称这条边为无向边,用无序偶对(vi,vj)来表示 无向图:图内任意两个顶点之间的边都没有方向 有向边:顶点vi到vj的边有方向,也称为弧,用有序偶<vi,vj>表示,vi表示弧尾,vj表示弧头 有向图:图内 阅读全文
posted @ 2017-06-22 08:48 ulysses_you 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 快照备份 1.创建文件仓库 1.1 在$ELASTICSEARCH_HOME/config/elasticsearch.yaml中增加配置 #这个路径elasticsearch必须有权限访问,这个路径是所有快照仓库的根路径 path.repo: your_path 1.2 调用rest api // 阅读全文
posted @ 2017-06-13 19:14 ulysses_you 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 定义 特点 特殊的二叉树 斜树 顾名思义,其中的结点都只有一个,又分为左斜树和右斜树,这时候又有疑惑了,这种数据结构不是有线性表一样吗,没错,线性表是一种特殊的树 满二叉树 完全二叉树 这个定义有点绕,简单来说就是所有的结点必须是有顺序的,不能跳跃存在 二叉树的性质 1.在二叉树的第i层至多有2的( 阅读全文
posted @ 2017-06-13 08:50 ulysses_you 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 定义 结点分类 结点的关系 森林 m棵互不相交的树的集合 树与线性表结构对比 存储结构 双亲表示法 优先记录每个节点的双亲(双亲是必有的,除了根节点),再针对特殊的需要,增加子节点或兄弟节点,重点在于寻找双亲节点,时间复杂度为O(1) 该方法结合了数组和链表,以数组为基础存储结构,每个元素再用链表的 阅读全文
posted @ 2017-06-08 09:02 ulysses_you 阅读(203) 评论(0) 推荐(0) 编辑