
数据结构
文章平均质量分 65
新叶猫
如有错误,欢迎指教
展开
-
c语言实现八大排序详细解析
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就 会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。原创 2023-08-03 17:19:28 · 860 阅读 · 0 评论 -
详细的二叉树的创建,销毁,遍历,完全二叉树判断代码实现
创建,销毁,遍历,完全二叉树的判断原创 2023-07-06 19:16:42 · 267 阅读 · 0 评论 -
二叉搜索树的代码详解
供参考学习原创 2023-05-12 12:48:24 · 296 阅读 · 11 评论 -
超详细的堆排序,进来看看吧。
你要进来学习,超详细的堆排解析原创 2023-03-18 20:40:01 · 1299 阅读 · 24 评论 -
手把手教你实现书上的队列,进来试试?
1、定义双端队列是指允许两端都可以进行入队和出队操作的队列,如下图所示。其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端,两端都可以入队和出队。在双端队列进队时,前端进的元素排列在队列中后端进的元素的前面,后端进的元素排列在队列中前端进的元素的后面。在双端队列出队时,无论是前端还是后端出队,先出的元素排列在后出的元素的前面。原创 2023-03-10 17:47:06 · 771 阅读 · 15 评论 -
看完书上的栈不过瘾,为什么不动手试试呢?
链栈的进栈push和出栈pop操作都很简单,时间复杂度均为O(1)。对比一下顺序栈与链栈,它们在时间复杂度上是一样的,均为O(1)。对于空间性能,顺序栈需要事先确定一个固定的长度,可能会存在内存空间浪费的问题,但它的优势是存取时定位很方便,而链栈则要求每个元素都有指针域,这同时也增加了一些内存开销,但对于栈的长度无限制。所以它们的区别和线性表中讨论的一样,如果栈的使用过程中元素变化不可预料,有时很小,有时非常大,那么最好是用链栈,反之,如果它的变化在可控范围内,建议使用顺序栈会更好一些。原创 2023-03-10 16:24:47 · 1822 阅读 · 12 评论 -
看完书上的链表还不会实现?不进来看看?
// 双向链表尾删//需要注意此处如果链表初始化后不断删除会使得pHead指针指向的地方不确定,如果后续用户未重新创造双向链表的哨兵位而继续插入数据,会导致非法访问。//或者加个条件判断判断是否只有一个哨兵位,是的话就不再进行删除。原创 2023-03-08 21:41:12 · 871 阅读 · 5 评论 -
双向带头循环链表(进来抄作业)
事实上通过上面的代码我们不难发现双向循环链表只是看起来结构复杂,但其实思想简单,而且访问的效率非常高。原创 2023-03-04 18:00:08 · 269 阅读 · 19 评论 -
手撕一张链表(增删查改插入)
供练习参考,附一些自己的感悟原创 2023-02-25 20:25:50 · 382 阅读 · 11 评论 -
教你如何快速手撕一张顺序表
事实上,写个任意位置插入和删除就解决特殊位置的头删头插那些了原创 2023-02-22 22:47:41 · 309 阅读 · 9 评论 -
时间复杂度和空间复杂度
我们如何衡量一个算法的好坏呢?其实衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。原创 2023-02-19 20:20:10 · 311 阅读 · 2 评论