
数据结构与算法
文章平均质量分 93
汪磊的博客
这个作者很懒,什么都没留下…
展开
-
Android版数据结构与算法(十):终极之树-红黑树与TreeMap详细解析
本文目录 一、为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树,既然已经有了AVL这种平衡的二叉排序树,为什么还要有红黑树呢? AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对值不超过1,其是一颗严格的平衡树,这样构建出来的平衡二叉排序树具有很好的查找性能,但是为了保持其每个结点平衡因子绝对值不超过1的特性在插入或者删除的时候需要的维护成本是很大的,插入或者删除需要大量的...原创 2018-12-20 09:48:05 · 686 阅读 · 0 评论 -
Android版数据结构与算法(九):AVL树详细讲解
本文目录 一、二叉排序树性能问题 在上一篇中我们提到过二叉排序树构造可能出现的性能问题,比如我们将数据:2,4,6,8 构造一颗二叉排序树,构造出来如下: 这肯定不是我们所希望构造出来的,因为这样一棵树查找的时候效率是及其低下的,说白了就相当于数组一样挨个遍历比较。 那我们该怎么解决这个问题呢?这时候就需要我们学习一下二叉平衡树的概念了,本系列设计的二叉平衡树主要包含AVL树以及红黑树,本篇主...原创 2018-12-11 09:54:22 · 266 阅读 · 0 评论 -
Android版数据结构与算法(十二):经典排序算法再回顾
文章出自汪磊的博客,未经允许不得转载 本篇目录 一、排序的理解 提到排序大部分同学肯定第一时间想到int数组的排序,简单啊,所谓排序不就是将int数组按照从大到小或者从小到大排序吗,如果我有个数组存放的不是int数据,而是一个个对象呢?你怎么排序?所以我们首先要明确排序的定义: 排序指的是将一个数据元素的任意序列,重新排列成一个按照关键字有序的序列。 所谓排序最重要的是按照什么排序,就是定义中的关...原创 2019-01-11 09:54:59 · 234 阅读 · 0 评论 -
Android版数据结构与算法(十一):图的基础以及遍历代码实现
本篇目录 一、图定义 图是一种较线性表和树更为复杂的数据结构,其定义为: 图是由顶点的有穷非空集合与顶点之间边的集合构成,通常表示为:G(V, E), G表示一个图,V表示图中顶点的集合,E表示顶点之间边的集合。 如下,就是一个图: 二、图术语了解 图中数据元素我们称之为顶点,图中任意两个顶点都可能存在关系,顶点之间关系用边来表示。 若两个顶点Vi与Vj之间的边没有方向,则称这条边为无向边, 用...原创 2018-12-27 10:11:06 · 196 阅读 · 0 评论