![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 71
୧⍤⃝ 毛先生️
这个作者很懒,什么都没留下…
展开
-
排序二(数据结构)
1. 冒泡排序是一种非常容易理解的排序2. 时间复杂度:O(N^2)3. 空间复杂度:O(1)4. 稳定性:稳定1. 快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序2. 时间复杂度:O(N*logN)3. 空间复杂度:O(logN)4. 稳定性:不稳定1. 归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。2. 时间复杂度:O(N*logN)3. 空间复杂度:O(N)4. 稳定性:稳定。原创 2022-12-22 11:39:21 · 45 阅读 · 0 评论 -
排序(数据结构)
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。3. 希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些树中给出的。原创 2022-12-20 16:19:36 · 52 阅读 · 0 评论 -
二叉树(数据结构)
二叉树分为两种: 1. 空树2、非空:由根节点,根节点的左子树,根节点的右子树组成。原创 2022-11-29 11:41:24 · 441 阅读 · 0 评论 -
堆(数据结构)
如果有一个关键码的集合K = { , , ,…, },把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足: = ) i = 0,1,2…,则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。堆的性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。上图是大小堆结构,那么问题来了,什么是大堆呢?什么是小堆?给出一个数组,逻辑上看做一颗完全二叉树。原创 2022-11-26 20:51:46 · 124 阅读 · 0 评论 -
队列(数据结构)
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头这里我们使用链表来实现队列,主要是由于如果用数组实现的时候,出队列在数组头上出数据,需要遍历,效率很低。用单链表就可以解决我们的这个问题。原创 2022-11-16 22:44:57 · 160 阅读 · 0 评论 -
栈(数据结构)
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。原创 2022-11-15 23:06:43 · 114 阅读 · 0 评论 -
双向带头循环链表
带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了。今天我们简单来了解一下:以图说话:大概就是这样的一种链表。原创 2022-11-09 10:41:15 · 63 阅读 · 0 评论 -
链表(数据结构)
目录链表的构建创建链表(动态申请节点)链表的打印头插尾插尾删头删查找在pos位置插入原创 2022-11-08 18:00:31 · 471 阅读 · 0 评论 -
顺序表(数据结构)
顺序表(数据结构)原创 2022-10-31 09:31:01 · 56 阅读 · 0 评论 -
复杂度(数据结构)
算法的复杂度:算法编写成可执行程序的时候,运行肯定要耗费时间和空间(内存)资源的,所以衡量算法的好坏可以从时间和空间来看。即时间复杂度和空间复杂度。原创 2022-10-23 18:10:30 · 485 阅读 · 4 评论