![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
阿导算法学习之路
文章平均质量分 68
万物皆导_
写博客其实是自己想笔记罢了!
http://xu.wwjd.fun
展开
-
超好用的加密工具
为隐私护航原创 2024-05-29 17:46:15 · 475 阅读 · 4 评论 -
2.2 栈和队列—队列
什么是队列队列是一种先进先出(FIFO:First In First Out)的线性表,只允许从一端插入,从另一端删除,允许插入的一端叫队尾(rear),允许删除的一端叫队头(front)。队列的模型队列可以用数组或者链表进行实现,我这边使用链表进行实现。通过链表实现的队列叫链式队列,通过数组实现的队列叫顺序队列,需要注意的是还有一种特殊的队列叫循环队列,实现循环队列。操作入队: p...原创 2019-12-13 13:18:20 · 366 阅读 · 0 评论 -
2.1 栈和队列—栈
什么是栈栈本质是表,只不过其限制了插入和删除都在一个位置上进行,这个位置是表的末端,称之为栈顶。栈也被称作后进先出(LIFO:Last In First Out)表。栈的模型栈是一种抽象型数据模型,以下就是栈的模型,每次数据进栈都会添加到栈顶(top),每次访问只能访问栈顶的数据因为栈的本质是表,所以可以通过数组或者链表进行实现。操作进栈:private boolean push(...原创 2019-12-13 13:13:02 · 474 阅读 · 0 评论 -
1.4 线性表—并查集
什么是并查集并查集是线性表的一种应用,是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。结构上面已经说明并查集是一种树型结构,所以可通过数组或者链表来实现,阿导在网上搜索了一下基本示例基本是通过数组来实现。这样比较好模拟这种结构,下标为...原创 2019-12-09 12:20:24 · 377 阅读 · 0 评论 -
1.3 线性表——跳跃表
什么是跳跃表跳跃表是一种有序的数据结构,它通过在每个节点上维持多个指向其它节点的指针来达到快速访问的目的。跳跃表在插入、删除和查找操作上的平均复杂度为 O(logN),最坏为 O(N),可以和红黑树相媲美,但是在实现起来,比红黑树简单很多。redis在两个地方用到了跳跃表,一个是实现有序集合,另一个是在集群节点中用作内部数据结构。结构跳跃表的数据结构主要包含三个部分,数据区域,当然这里面...原创 2019-11-28 11:15:07 · 494 阅读 · 0 评论 -
1.2 线性表——链表
什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。列表(也成为顺序表)和链表都是线性表,那他们有什么区别呢?从结构上来说,列表底层是通过数组来存储数据,需要申请空间,然后按...原创 2019-11-21 11:59:21 · 249 阅读 · 0 评论 -
1.1 线性表——列表
什么是列表列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入,和删除。列表的两种主要表现是数组和链表,栈和队列是两种特殊类型的列表。学过 C 语言的同学基本都知道,我们在学习列表的时候会定义一个结构体,然后对这个结构体进行各种操作,由于阿导后期从事 java 这条路,C 语言与我渐行渐远,所以下面阿导会通过 j...原创 2019-11-18 18:03:12 · 1344 阅读 · 0 评论 -
0_时间复杂度的计算
算法复杂度算法复杂度分为时间复杂度和空间复杂度。时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间复杂度是学习算法的基石,因此在学习算法之前,必须要知道如何去计算一段代码的时间复杂度,下面就根阿导一起来看看吧。如何计算一个程序的时间复杂度如下面一段代码,如何计算它的时间复杂度呢? int a= 10; int b= 10...原创 2019-11-18 12:16:21 · 317 阅读 · 0 评论