数据结构与算法
疯狂翻滚的石头
这个作者很懒,什么都没留下…
展开
-
B树详解
B树详解B树B树基本概念网上的许多资料在讲述数据结构之前都会讲相关的一些符合、说明以及特性什么的都交代清除。在阅读网上资料的时候我发现许多知识点说的都非常的官方,简单来说就是贼难看懂。所以我在记录的时候会将那些难懂的官方内容用通俗的话解释一下,方便我自己的理解。首先来说,为什么我们要引入B树呢?有二叉树不是很好吗?存在即合理。所以还是有存在的理由的。B树的时间复杂度与二叉树一样,均为O(logN)。然而B树出现是因为磁盘IO。IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有转载 2020-06-28 13:41:19 · 1367 阅读 · 0 评论 -
串
文章目录串概念存储顺序存储链式存储复杂度及应用应用匹配朴素匹配KMP算法串概念串是一个特殊的线性表,由n(n>=0)个字符组成的一个有限序列,n可以由字母、数字或其他字符组成,串的每个数据元素仅有一个字符,串又称字符串S = “a1a2…ai…an”S是串名,用双引号括起来的字符序列为串值,引号本身不是串的内容存储串的存储结构比较简单,单字符的特性,使得顺序及链式都能很好的...原创 2020-04-09 15:54:40 · 699 阅读 · 0 评论 -
队列
文章目录队列定义类型复杂度队列的属性及概念队列的方法类型及适用场景消息队列概念模式优点缺点消息队列的选择注意事项使用场景注意事项队列定义队列是一种特殊的线性表,其特殊之处在于它只允许表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是一种受限的线性结构队列只允许在头部...原创 2020-04-06 19:08:04 · 354 阅读 · 0 评论 -
Circular Queue(循环队列)
为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。用java实现循环队列的方法:1、增加一个属性size用来记录目前的元素个数。目的是当head=rear的时候,通过size=0还是size=...转载 2020-04-06 17:58:34 · 960 阅读 · 0 评论 -
BlockingQueue(阻塞队列)
注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。一. 前言在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了Blockin...转载 2020-04-06 15:46:16 · 148 阅读 · 0 评论 -
栈
Stack 栈Stack(栈 )逻辑定义实现特点使用场景常见应用递归定义思想使用方式常见递归尾递归循环迭代法总结Stack(栈 )逻辑定义栈(Stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出...原创 2020-03-31 21:43:49 · 141 阅读 · 0 评论 -
链表
文章目录链表结构优缺点常见类型常见用法跳表结构优缺点常见应用链表结构链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表的存储不用考虑数据的连续性 不考虑扩容性能损耗 典型的...原创 2020-03-30 15:15:06 · 121 阅读 · 0 评论 -
数组
文章目录数组定义特性为什么一般使用数组要指定长度常见问题散列表(Hash哈希表)原理及构造特性如何解决散列冲突1. 开放寻址法2.链表法常见应用数组定义数组,是有序的元素序列,用于存储多个相同类型的数据的集合,数组在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组数组,即连续的同一类型的数据,使用连续的内存空间存...原创 2020-03-26 15:25:22 · 161 阅读 · 0 评论 -
数据结构的组成
数据结构的组成数据结构由存储结构、逻辑结构及算法组成存储结构:又名物理结构,是数据存储到计算机上的真实结构逻辑结构:是数据组合规则与关系的抽象描述,一般所讨论的数据结构通常指逻辑结构算法:是针对逻辑结构一系列的操作方法,算法在考虑性能的时候受存储结构制约...原创 2019-11-29 13:31:29 · 1937 阅读 · 0 评论 -
Space Complexity(空间复杂度)
定义Space Complexity(空间复杂度) 对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))公式S(n)=O(f(n)) 渐进空间复杂度名词解释n :变量参数,代表输入得规模,也可理解为该算法实现的业务问题的规模f(n) :f(n)为语句关于n所占存储空间的函数空间复杂度推导原则如果算法执行所需要的临时空间不随着某个变量n的大小而变化,即此算...原创 2019-11-27 16:49:13 · 553 阅读 · 0 评论 -
Time Complexity (时间复杂度)
概念什么是时间复杂度时间复杂度 用来定性的描述算法的执行时间的一个函数,更类似于一个耗时的趋势,函数表示为: O(f(n))名词解释n :问题的规模,重复执行的次数T(n) :一段程序运行,各种操作代码所执行的总次数f(n) :存在的某个函数,使得T(n)/f(n)=非零常数,那么f(n)称为T(n)的同数量级函数O :大O符号,一种符号,表示渐进于无穷的行为算法中各种代码操作所执...原创 2019-11-26 19:25:17 · 3022 阅读 · 2 评论