
Data Structure
文章平均质量分 93
IfYouHave
这个作者很懒,什么都没留下…
展开
-
数据结构—排序算法(归并&&非比较)
归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。时间复杂度:O(MAX(N,范围))空间复杂度:O(范围) 比特就业课稳定性:稳定。原创 2023-05-22 13:33:02 · 539 阅读 · 0 评论 -
数据结构—排序算法交换排序(冒泡&&快排)
1. 快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序2. 时间复杂度:O(N*logN)3. 空间复杂度:O(logN)4. 稳定性:不稳定。原创 2023-05-21 13:56:45 · 740 阅读 · 0 评论 -
数据结构—排序算法(插入排序及选择排序)
1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。3. 希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些书本中给出的希尔排序的时间复杂度都不固定。原创 2023-05-20 15:56:02 · 517 阅读 · 0 评论 -
数据结构—二叉树补充层序遍历
层序遍历:除了先序遍历、中序遍历、后序遍历外,还可以对二叉树进行层序遍历。设二叉树的根节点所在 层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层 上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。二叉树遍历_牛客题霸_牛客网 (nowcoder.com)原创 2023-03-19 17:07:37 · 425 阅读 · 1 评论 -
数据结构—二叉树链式结构的实现
普通二叉树的增删查改没有什么意义,主要学习遍历、结构而存储数据,不如用顺序表,链表,那么学习他的意义是为了什么?1.为了后面学习更为复杂的二叉树打基础。(搜索二叉树、ALV树、红黑树、B树、B+树、B*树)2.有很多二叉树的OJ算法题,都是出在普通二叉树上。原创 2023-03-17 15:53:34 · 553 阅读 · 0 评论 -
数据结构—二叉树和堆
目录1.树概念及结构1.1树的基本概念 1.2 树的相关概念1.3 树的表示 1.4 树在实际中的运用(表示文件系统的目录树结构) 2.二叉树概念及结构2.1概念2.2现实中的二叉树: 2.3 特殊的二叉树: 2.4 二叉树的性质2.5 二叉树的存储结构3.堆3.1 二叉树的顺序结构引入堆3.2 堆的概念及结构3.3 堆的实现3.2.1 堆的创建——堆向下调整算法3.2.2堆的创建——堆向上调整算法3.2.3 建堆时间复杂度3.2.4 堆的插入3.2.5 堆的删除——堆相关3.2.6 堆的代码实现3.4 堆原创 2023-03-16 16:41:49 · 598 阅读 · 0 评论 -
数据结构—栈和队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为。另外扩展了解一下,实际中我们有时还会使用一种队列叫循环队列。环形队列可以使用数组实现,也可以使用循环链表实现。栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。,因为如果使用数组的结构,出队列在数 组头上出数据,效率会比较低。压栈:栈的插入操作叫做进栈/压栈/入栈,队列也可以数组和链表的结构实现,使用。原创 2023-03-15 13:51:05 · 378 阅读 · 0 评论 -
数据结构—双向带头循环链表的实现
可知链表的结构非常多样,以下情况组合起来就有八种链表结构:1.单向带头循环链表2.单向带头不循环链表3.单向不带头循环链表4单向不带头不循环链表5.双向带头循环链表6.双向带头不循环链表7.双向不带头循环链表8.双向不带头不循环链表双向带头循环链表:结构复杂、操作简单,为最优链表。原创 2023-03-14 21:41:31 · 224 阅读 · 0 评论 -
数据结构—单链表OJ
目录Number 1:删除链表中等于给定值 val 的所有结点。Number 2:反转一个单链表。Number 3:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则 返回第二个中间结点。Number 4: 输入一个链表,输出该链表中倒数第k个结点。Number 5:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有结点组成的。Number 6:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 。Nu原创 2023-03-12 18:05:56 · 435 阅读 · 0 评论 -
数据结构—单链表的实现
对于顺序表:用一段物理地址连续的存储单元依次存储数据元素的线性结构。优势:1.物理空间连续,可知只要有开始位置的指针,后续可以一一访问2.支持下标的随机访问,首元素地址+ 下标缺点:1.空间不够,需要不断扩容,增容一般是呈2倍的增长,势必会有一定的空间浪费。2.增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。3.头部或者中间位置的插入删除效率低下——都要挪动数据改善方案:1.按需申请释放空间2.头部中间的插入删除,不需要挪动数据。原创 2023-03-11 14:42:07 · 107 阅读 · 0 评论 -
数据结构—顺序表
在任何问题中,数据元素都不会是孤立的,在他们之间存在着这样或那样的关系,这种数据元素之间存在的关系称为数据的逻辑结构。根据数据元素之间关系的不同特性,通常有以下4类基本的逻辑结构。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。物理结构研究的是数据结构在计算机中的实现方法,实际就是实现数据结构中数据元素的存储表示及数据元素之间关系的表示。线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...数据元素之间的关系除了。原创 2023-03-09 16:18:23 · 288 阅读 · 0 评论 -
数据结构术语—时间空间复杂度
内存中存储管理数据的结构——数据结构数据库和数据结构的区别?本质都是存储管理数据而数据结构是在内存中存储管理数据的——内存是带电存储数据库是在磁盘中存储管理数据的算法,就是对数据按要求进行某种处理,查找,排序等。算法和数据结构的关系:你中有我,我中有你数据作为计算机加工处理的对象,如何在计算机中表示和存储数据是计算机科学研究的只要内容之一,更是计算机技术需要解决的关键问题之一。程序=数据结构+算法数据是计算机的信息,是计算机处理的主要对象。科学计算、数据处理、过程控制、文件存储、数据库技术。原创 2023-03-07 17:51:58 · 210 阅读 · 0 评论