小黄学数据结构与算法
文章平均质量分 77
贼爱学习的小黄
这个作者很懒,什么都没留下…
展开
-
数据结构——树
树概念树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。为什么要使用树结构?在说为什么之前,我们先来看一下数组和链表的结构有哪些优缺点数组的优缺点优点:通过下标方式访问元素,速度非常的快。对于有序数组,还可以使用二分查找、斐波那契查找等算法来提高性能缺点:如果我们需要按顺序插入一个元素时,数组的缺点就很明显了,他会整体移动,效率非常低有小伙伴可能就会说可以使用集合的形式来存储数据,我们来ArrayList来举例//空参原创 2022-04-11 19:51:38 · 1892 阅读 · 3 评论 -
数据结构——哈希表
哈希表概念散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。案例分析公司有那么一个要求:存储员工信息,对应着增删改查方法,但不能使用持久层工具实现。这时候我们就无法使用数据库等工具来存储信息,可以使用哈希表将数据存储在内存中。思路分析代码实现public class HashTableDemo { pu原创 2022-04-11 10:40:12 · 1021 阅读 · 0 评论 -
数据结构——栈
栈概念栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。通俗来讲,大家可以把栈理解为小时候玩手枪上子弹的玩具,先上进去的子弹是在最下面的,第一个射出的子弹是最后一个上进去的子弹,这就是栈与队列不同的地方:先进后出思路分析代码实现原创 2022-04-11 10:39:11 · 793 阅读 · 0 评论 -
数据结构——链表
链表概念链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。单向链表思路分析创建单向链表时,首先需要创建一个头节点,这个头节点不用来存储数据,当需要存储数据时,每添加一个数据则将前一个节点的next指向新加的数据即可。遍历链表时,需要创建一个辅助变量,用来遍历整个链表。代码实现需求:原创 2022-04-11 10:37:03 · 1196 阅读 · 0 评论 -
数据结构——队列
队列概念其实小黄在工作中经常用到队列,比如RabbitMQ、ActiveMQ等,他们底层都需要队列来实现,那么队列到底是什么呢?我们在银行处理业务的时候,假设银行只开放1个柜台,我们来了4个人,那么后三个人就要排队,先来的人可以先处理业务,这就是队列先进先出的概念。思路分析我们需要用自己的方法实现一个队列,首先来理一下思路队列需要有一个最大容量,就好比只开放一个柜台,最大容量maxSize队列可以进行添加数据,那么在添加数据的过程中,我们定义一个rear变量(初始值为-1),来指向最后一次添原创 2022-04-11 10:33:42 · 650 阅读 · 0 评论 -
算法——排序算法
关于几个排序算法的介绍,之后会继续更新更多的排序算法原创 2022-04-01 21:40:22 · 656 阅读 · 0 评论 -
算法——递归算法
递归算法概念程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。了解递归原创 2022-04-01 21:37:52 · 318 阅读 · 0 评论 -
数据结构——稀疏数组
本文主要记录数据结构的心得,介绍了稀疏数组、队列、链表、栈等概念,持续更新哦。。。原创 2022-03-23 21:21:20 · 486 阅读 · 0 评论