数据结构与算法
文章平均质量分 93
该专栏会持续更新数据结构与算法相关知识
多喝烧碱
我们一起加油哦!
展开
-
数据结构——链表
刚才我们了解到,数组作为数据存储结构有一定的缺点。在无序数组中,搜索时十分低效。在有序数组中,插入的效率很低。不管在哪种数组中,删除的效率都很低。而且大小无法改变。为了应对顺序表的缺陷,链表就此诞生。链表也是继数组之后第二种使用的最广泛的通用数据结构。链表结构:在物理上不连续,在逻辑上连续。大小不固定。链式存储结构是基于指针实现的。我们把一个数据元素和一个指针称之为节点数据域:存数据元素的区域指针域:存储直接后继位置的区域。链式存储,其实就是用指针将相互关联的结点链接起来。原创 2024-01-13 20:19:53 · 920 阅读 · 1 评论 -
数据结构——顺序表
在计算机内存中,顺序表是以数组的形式保存的线性表。也就是⼀组地址连续的存储单元依次存储数据元素的线性结构。在数组中,我们会先申请⼀段连续的内存空间,然后把数组以此存⼊内存当中,中间没有⼀点空隙。这就是⼀种顺序表存储数据的⽅式。对于顺序表的基本操作有:增(add),删(remove),改(set),查(find),插(insert)。综上所述,可以得出。顺序表对于插⼊、删除⼀个元素的时间复杂度是O(n)。因为顺序表⽀持随机访问,顺序表读取⼀个元素的时间复杂度为O(1)。因为我们是通过下标访。原创 2024-01-12 22:58:35 · 575 阅读 · 2 评论 -
数据结构——栈与队列
栈和队列是非常重要的数据结构,在各个方面都有广泛的运用,值得认真学习栈和队列的代码实现是重点,延迟队列和阻塞队列和LRU了解即可。原创 2024-01-17 20:58:39 · 936 阅读 · 1 评论 -
复杂度分析
一般来说,解决问题的方法不止一种。我们需要学习如何比较不同算法的性能,并选择最佳算法来解决特定的问题。一个算法的好坏,我们可以从时间和空间两个维度去衡量。执行时间越短,占用内存空间越小的算法,我们认为是更优的算法。并且,一般分为两个阶段,一是算法完成前的理论分析,二是算法完成后实际分析。「理论分析」:这种算法的效率分析是通过假设所有其他因素,如处理器的速度等是恒定的,对算法的实现没有影响。原创 2024-01-21 22:53:44 · 1308 阅读 · 1 评论 -
数据结构——树的合集
树是非常常用的数据结构,知识点也非常多,本文也只是较为简单的,像红黑树什么的并没有哈二叉树是每个结点最多有两个子树的树结构。也就是说二叉树不允许存在度大于2的树。它有五种最基本的形态:二叉树可以是空集。根可以有空的左子树或者右子树;或者左右子树都是空。其中只有左子树或者右子树的叫做斜树。平衡二叉查找树:简称平衡二叉树。由前苏联的数学家 Adelse-Velskil 和 Landis 在 1962 年提出的高度平衡的二叉树,根据科学家的英文名也称为 AVL 树。它具有如下几个性质:1、可以是空树。原创 2024-01-24 20:15:11 · 1605 阅读 · 0 评论 -
数据结构——图
每种数据结构都有不同的用武之地,同样的图也不例外,下面我们就开始对图的研究吧。在线性表中,每个元素之间只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间是层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关。但这仅仅都只是一对一,一对多的简单模型,如果要描述多对多的复杂关系就需要图数据结构了!图的遍历方式包括深度优先搜索(DFS)和广度优先搜索(BFS),其中 DFS 使用递归或栈进行实现,而BFS则采用队列进行实现。原创 2024-01-18 15:38:22 · 1314 阅读 · 3 评论