数据结构
文章平均质量分 73
烧鸡配油茶
一定可以!
展开
-
【数据结构】排序(二)——快速排序(细节版)
❓细节1:Left 从 begin or begin+1 开始?答:从begin+1开始❓细节2:相遇即停如何控制?答:虽然外层判断left<right 但内层循环 left、right 持续在动 不能保证依然满足 left<right 的条件。当left、right 错位了 再找比key大 或 小 的值 就没有意义了!!!所以给 负责找大 找小的循环 要加上left<right 的条件!!!这样就控制了 相遇即停❓细节3:右边先走可以保证 相遇位置 比 key小?为什么?原创 2024-05-20 10:36:57 · 1152 阅读 · 71 评论 -
【数据结构】排序(一)—— 希尔排序(思路演进版)
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组接近于有序。当gap == 1时,数组已经是接近有序,再进行直接插入排序,目的是让数组有序。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。原创 2024-05-12 19:27:41 · 1698 阅读 · 34 评论 -
【数据结构】栈和队列的实现
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。原创 2024-05-09 10:58:28 · 197 阅读 · 13 评论 -
【数据结构】堆的应用——堆排序、top-k问题
堆排序、top-k问题原创 2024-05-10 10:29:11 · 573 阅读 · 35 评论 -
【数据结构】 二叉树的顺序结构——堆的实现
堆中某个节点的值总是不大于或不小于其父节点的值。父节点比孩子结点大 是大堆。父节点比孩子结点小 是小堆。原创 2024-05-10 09:56:48 · 319 阅读 · 19 评论 -
【数据结构】链表的增删查改
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的。注意:1.链式结构在逻辑上是连续的,但在物理上不一定连续2.现实中的结点一般都是从堆上申请出来的3.从堆上申请的空间,是按照一定的策略来分配,两次申请的空间,可能连续,也可能不连续。原创 2024-04-18 16:22:38 · 469 阅读 · 1 评论 -
【数据结构】顺序表的增删查改
是用一段的存储单元依次存储数据元素的,一般情况下采用。在数组上完成数据的增删查改。1.静态顺序表:使用定长数组存储元素。2. 动态顺序表:使用动态开辟的数组存储。原创 2024-04-07 19:48:52 · 89 阅读 · 28 评论