![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
鄙人薛某
欢迎大家关注我的公众号:鄙人薛某,我将用通俗易懂的语言为你讲解后端的相关技术点,更新速度优于CSDN
展开
-
数据结构:哈希表以及哈希冲突的解决方案
前言基于先前的学习计划,最近打算深入学习Java的集合类,首先要研究的就是HashMap,在学习HashMap前,我花了几天时间温习了一下类中用到的数据结构 (哈希表,二叉树),并决定把所学的知识记录写成文章,本文讲述的就是关于哈希表的知识。什么是哈希表在之前的博客文章里,我们简单介绍了数据结构的几种分类,其中就包括哈希表,也称散列表,从根本上来说,一个哈希表包含一个数组,通过特殊...原创 2018-09-08 20:54:23 · 5112 阅读 · 3 评论 -
数据结构:八大数据结构分类
数据结构分类数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。 常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。1、数组数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始...原创 2018-09-05 18:23:28 · 693000 阅读 · 120 评论 -
数据结构:哈夫曼树和哈夫曼编码
哈夫曼树哈夫曼树是一种最优二叉树,其定义是:给定n个权值作为n个叶子节点,构造一棵二叉树,若树的带权路径长度达到最小,这样的树就达到最优二叉树,也就是哈夫曼树,示例图如下: 基本概念深入学习哈夫曼树前,先了解一下基本概念,并以上面的哈夫曼树图为例路径:树中一个结点到另一个结点之间的分支序列构成两个结点间的路径。路径长度:路径中分支的数目,从根结点到第L层结点的路径长度为L-1...原创 2018-09-11 20:39:39 · 3207 阅读 · 2 评论 -
数据结构:IO读写频繁的青睐,B树和B+树
今天学习B树和B+树,B树和B+树都是基于二叉树的衍生,对于二叉树不太了解的读者可以翻看《数据结构:二叉树》本文目录:B树定义及特性查找顺序保持平衡B+树B+树的插入使用场景参考B树定义及特性B树,在写法上通常是B-树,这不是减号的意思,只是一种表达方式,它是一种能够存储数据、对数据进行排序并允许以O(log n)的时间复杂度运行进行查找、...原创 2018-09-09 20:27:10 · 1328 阅读 · 0 评论 -
数据结构:二叉树
数据结构分类中有一种很常见的结构,那就是树,树的分类很多种,包括二叉树、二叉搜索树、红黑树、B+树等等,但大多数都是基于二叉树的衍生结构,所以今天来学习下二叉树。本文的目录结构如下:什么是二叉树二叉树的性质二叉树的遍历先序遍历中序遍历后序遍历特殊的二叉树满二叉树完全二叉树最后什么是二叉树定义:二叉树是每个结点最多有两个子树的树结构。通常子树被...原创 2018-09-06 21:15:49 · 850 阅读 · 0 评论 -
数据结构:红黑树的结构以及方法剖析 (上)
文章转载自:https://www.cnblogs.com/CarpenterLee/p/5503882.html,觉得作者写的非常好,特此转载此文章方便学习,如若侵权,立马删除!本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。 前言Java TreeMap实现了SortedM...转载 2018-09-13 16:33:43 · 961 阅读 · 0 评论 -
数据结构:红黑树的结构以及方法剖析 (下)
本文转载自:https://www.cnblogs.com/CarpenterLee/p/5525688.html前言上一篇文章 数据结构:红黑树的结构以及方法剖析 (上) 对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下...转载 2018-09-13 16:35:44 · 446 阅读 · 0 评论 -
八种排序算法以及Java代码的实现
排序问题一直是程序员工作与面试的重点,今天特意整理研究下与大家共勉!这里列出8种常见的经典排序,基本涵盖了所有的排序算法。 直接插入排序我们经常会到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。如题所示: 直接插入排序(Straight...转载 2018-09-13 16:36:28 · 636 阅读 · 0 评论