数据结构与算法
文章平均质量分 90
小北呱
大学软件工程专业在读
目前大四
现居深圳
展开
-
数据结构与算法-11(红黑树)
红黑树我们前面介绍了2-3树,可以看到2-3树能保证在插入元素之后,树依然保持平衡状态,它的最坏情况下所有子结点 都是2-结点,树的高度为lgN,相比于我们普通的二叉查找树,最坏情况下树的高度为N,确实保证了最坏情况下的时间复杂度,但是2-3树实现起来过于复杂,所以我们介绍一种2-3树思想的简单实现:红黑树。红黑树主要是对2-3树进行编码,红黑树背后的基本思想是用标准的二叉查找树(完全由2-结点构成)和一些额外的信 息(替换3-结点)来表示2-3树。我们将树中的链接分为两种类型:红链接:将两转载 2021-08-03 12:42:52 · 115 阅读 · 0 评论 -
数据结构与算法-10(2-3查找树)
2-3查找树 个人博客:www.xiaobeigua.icu了解平衡树之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是 这样的,但不...转载 2021-08-03 11:52:33 · 121 阅读 · 0 评论 -
数据结构与算法-09(二叉树)
1.1树的基本定义树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家 谱、单位的组织架构、等等。树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就 是说它是根朝上,而叶朝下的。 树具有以下特点:1.每个结点有零个或多个子结点;2.没有父结点的结点为根结点;3.每一个非根结点只有一个父结点;...原创 2021-08-02 23:38:33 · 617 阅读 · 0 评论 -
数据结构与算法-08(队列)
队列1.1队列概述队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它 按照先进先出的原则存储数据,先进入的数据,在读取数据时先被读出来。例子:(食堂排队)队列模型: 1.2队列的API设计1.3队列的实现//队列代码public class Queue<T> implements Iterable<T>{ //记录首结点...原创 2021-08-02 22:22:55 · 79 阅读 · 0 评论 -
数据结构与算法-07(栈)
栈 个人博客:www.xiaobeigua.icu1.1 栈概述生活中的栈存储货物或供旅客住宿的地方,可引申为仓库、中转站 。例如我们现在生活中的酒店,在古时候...原创 2021-08-02 22:10:11 · 103 阅读 · 0 评论 -
数据结构与算法-06(链表)
链表 个人博客:www.xiaobeigua.icu之前我们已经使用顺序存储结构实现了线性表,我们会发现虽然顺序表的查询很快,时间复杂度为O(1),但是增删的 效率是比较低的,因...原创 2021-08-02 21:52:29 · 133 阅读 · 0 评论 -
数据结构与算法-05(顺序表)
一 线性表线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列。前驱元素:若A元素在B元素的前面,则称A为B的前驱元素后继元素:若B元素在A元素的后面,则称B为A的后继元素线性表的特征:数据元素之间具有一种“一对一”的逻辑关系。1. 第一个数据元素没有前驱,这个数据元素被称为头结点;2. 最后一个数据元素没有后继,这个数据元素被称为尾结点;...原创 2021-07-26 23:19:38 · 243 阅读 · 0 评论 -
数据结构与算法-04(高级排序)
高级排序 个人博客:www.xiaobeigua.icu之前我们学习过基础排序,包括冒泡排序,选择排序还有插入排序,并且对他们在最坏情况下的时间复杂度做了分 析,发现都是O(N^2),而平方阶通过我...原创 2021-07-23 23:18:20 · 198 阅读 · 0 评论 -
数据结构与算法-03 (常用排序)
一、常用排序在我们的程序中,排序是非常常见的一种需求,提供一些数据元素,把这些数据元素按照一定的规则进行排序。比 如查询一些订单,按照订单的日期进行排序;再比如查询一些商品,按照商品的价格进行排序等等。所以,接下来 我们要学习一些常见的排序算法。在java的开发工具包jdk中,已经给我们提供了很多数据结构与算法的实现,比如List,Set,Map,Math等等,都 是以API的方式提供,这种方式的好处在于一次编写,多处使用。我们借鉴jdk的方式,也把算法封装到某个类中, 那如果是这样,在我们写jav原创 2021-07-23 22:25:52 · 77 阅读 · 0 评论 -
数据结构与算法-02(时间复杂度,空间复杂度)
时间复杂度,空间复杂度 个人博客:www.xiaobeigua.icu一、算法时间复杂度与空间发复杂度分析前面我们已经介绍了,研究算法的最终目的就是如何花更少的时间,如何占用更少的内存去完成相同的需求,并且 也通过案例演示了不同算法之间时间耗费和空...原创 2021-07-23 16:40:17 · 706 阅读 · 0 评论 -
数据结构与算法-01(概述)
概述1.1什么是数据结构?官方解释: 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。大白话: 数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据1.2数据结构分类传统上,我们可以把数据结构分为逻辑结构和物理结构两大类。逻辑结构分类: 逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照...转载 2021-07-23 15:44:07 · 101 阅读 · 0 评论