随笔分类 -  数据结构与算法

摘要:文章出自汪磊的博客,未经允许不得转载 文章出自汪磊的博客,未经允许不得转载 一、排序的理解 一、排序的理解 提到排序大部分同学肯定第一时间想到int数组的排序,简单啊,所谓排序不就是将int数组按照从大到小或者从小到大排序吗,如果我有个数组存放的不是int数据,而是一个个对象呢?你怎么排序?所以我们 阅读全文
posted @ 2019-01-11 10:02 WangLei_ClearHeart 阅读(1688) 评论(1) 推荐(0) 编辑
摘要:本篇目录 一、图定义 图是一种较线性表和树更为复杂的数据结构,其定义为: 图是由顶点的有穷非空集合与顶点之间边的集合构成,通常表示为:G(V, E), G表示一个图,V表示图中顶点的集合,E表示顶点之间边的集合。 如下,就是一个图: 二、图术语了解 图中数据元素我们称之为顶点,图中任意两个顶点都可能 阅读全文
posted @ 2018-12-27 10:11 WangLei_ClearHeart 阅读(3811) 评论(0) 推荐(1) 编辑
摘要:本文目录 一、为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树,既然已经有了AVL这种平衡的二叉排序树,为什么还要有红黑树呢? AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对值不超过1,其是一颗严格的平衡树,这样构建出来的平衡二叉排序树具有很好的查找性能,但是为了保持其每个 阅读全文
posted @ 2018-12-20 10:04 WangLei_ClearHeart 阅读(1508) 评论(0) 推荐(2) 编辑
摘要:数据结构与算法(一):基础简介 数据结构与算法(二):基于数组的实现ArrayList源码彻底分析 数据结构与算法(三):基于链表的实现LinkedList源码彻底分析 数据结构与算法(四):基于哈希表实现HashMap核心源码彻底分析 数据结构与算法(五):LinkedHashMap核心源码彻底分 阅读全文
posted @ 2018-12-11 09:54 WangLei_ClearHeart 阅读(7996) 评论(4) 推荐(3) 编辑
摘要:本文目录 前两篇文章我们学习了一些树的基本概念以及常用操作,本篇我们了解一下二叉树的一种特殊形式:二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 一、二叉排序树定义 二叉排序树或者是一颗空树,或者是具有下列性质的二叉树: 若它 阅读全文
posted @ 2018-12-04 11:46 WangLei_ClearHeart 阅读(778) 评论(3) 推荐(0) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 近期忙着新版本的开发,此外正在回顾C语言,大部分时间没放在数据结构与算法的整理上,所以更新有点慢了,不过既然写了就肯定尽力将这部分完全整理好分享出来。 言归正传,开启本篇的正文。 一、什么是赫夫曼树 给定n个权值作为n个叶子结点,构造一棵二叉树, 阅读全文
posted @ 2018-10-22 10:27 WangLei_ClearHeart 阅读(664) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 之前的篇章主要讲解了数据结构中的线性结构,所谓线性结构就是数据与数据之间是一对一的关系,接下来我们就要进入非线性结构的世界了,主要是树与图,好了接下来我们将会了解到树以及二叉树,二叉平衡树,赫夫曼树等原理以及java代码的实现,先从最基础的开始学 阅读全文
posted @ 2018-10-08 10:04 WangLei_ClearHeart 阅读(1618) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 上一篇基于哈希表实现HashMap核心源码彻底分析 分析了HashMap的源码,主要分析了扩容机制,如果感兴趣的可以去看看,扩容机制那几行最难懂的代码真是花费了我很大的精力。 好了本篇我们分析一下HashMap的儿子LinkedHashMap的核 阅读全文
posted @ 2018-09-20 11:12 WangLei_ClearHeart 阅读(873) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 存储键值对我们首先想到HashMap,它的底层基于哈希表,采用数组存储数据,使用链表来解决哈希碰撞,它是线程不安全的,并且存储的key只能有一个为null,在安卓中如果数据量比较小(小于一千),建议使用SparseArray和ArrayMap,内 阅读全文
posted @ 2018-09-06 09:56 WangLei_ClearHeart 阅读(1389) 评论(0) 推荐(1) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 LinkedList 是一个双向链表。它可以被当作堆栈、队列或双端队列进行操作。LinkedList相对于ArrayList来说,添加,删除元素效率更高,ArrayList添加删除元素的话需移动数组元素,甚至还需要考虑到扩容数组长度。 一、Lin 阅读全文
posted @ 2018-08-08 09:52 WangLei_ClearHeart 阅读(1644) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 本片我们分析基础数组的实现--ArrayList,不会分析整个集合的继承体系,这不是本系列文章重点。 源码分析都是基于"安卓版"的源码,和java原生版核心思想都是差不多的。好了,废话依然少说,进入正文。 一、ArrayList中成员变量 源码: 阅读全文
posted @ 2018-08-01 09:55 WangLei_ClearHeart 阅读(1125) 评论(0) 推荐(0) 编辑
摘要:版权声明:本文出自汪磊的博客,未经作者允许禁止转载。 一、前言 项目进入收尾阶段,忙忙碌碌将近一个多月吧,还好,不算太难,就是麻烦点。 数据结构与算法这个系列早就想写了,一是梳理总结,顺便逼迫自己把一些模模糊糊的概念弄明白,最重要的我觉得数据结构与算法平时我们总是接触,什么ArrayList,Lin 阅读全文
posted @ 2018-07-18 10:50 WangLei_ClearHeart 阅读(3723) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示