数据结构(C语言)
文章平均质量分 94
兰雪簪轩
这个作者很懒,什么都没留下…
展开
-
数据结构——排序【下】
计数排序是一个非基于比较的排序算法,元素从未排序状态变为已排序状态的过程,是由额外空间的辅助和元素本身的值决定的。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。再最后排序时,一定要加的是 + ,如果加的为 tmp[i] 会导致出现问题,其原因为:tmp[i],在不断的变化,会导致排序出错。原创 2024-09-03 08:00:00 · 505 阅读 · 0 评论 -
深入理解并实现——归并排序【C语言】
这个本身的话,就是每次循环结束,在拷贝数组和临时数组的值进行交换,之后就是在临时数组改变之后的情况下,在进行第二次循环排序,之后。把拷贝后的数据在进行分组合并,每次循环里面都是对a合并后的数据在做处理,如果说全部执行完再拷贝,那a每次并没有啥变化,当然就不可能完成归并排序整个过程。关于这个问题,我们给出以下情景:在今年,你怀着忐忑的心情去参加秋招,顺利通过了笔试,在面试时,面试官的问题你都对答入流,直到最后一题:给你1G的空间,你如何使10G的数据有序,这时,你看过本博主写得TOP-K问题(原创 2024-08-30 20:07:16 · 1307 阅读 · 0 评论 -
深入理解并实现——快排【C语言版】
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法。1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。原创 2024-08-28 19:43:12 · 1199 阅读 · 0 评论 -
数据结构——排序【上】
以上便是本文的内容,希尔排序看着抽象,实际也不好理解,大家下去要多画图经行理解。其余的排序会在后续文章发出,期待下篇文章再见。原创 2024-05-30 21:04:55 · 733 阅读 · 3 评论 -
二叉树——经典练习题
二叉树的学习,我们目前就告一段落了,后续的进阶内容会在c++部分讲解。今天讲解的题目中最后三道难度较大,还望各位读者在学习完后能够多多练习,这样才能够掌握。如在学习中,有啥问题可在评论区交流,也可私信。期待与读者再会。完!原创 2024-05-27 06:00:00 · 2532 阅读 · 2 评论 -
二叉树详解
以上,便是我所有说的二叉树的大部分内容了,剩下的部分会在明天我为大家准备的练习题中进行讲解。如果今天讲出来,不太利于大家的理解。希望大家能把今天讲的知识拿去练习,好好理解巩固一下,我们明天再会!完!原创 2024-05-26 08:00:00 · 1294 阅读 · 3 评论 -
二叉树——堆详解
之前我们已经学习过了二叉树的基本知识,接下来我们就要上些“硬菜”了,话不多说,开始我们今天的学习吧!今天的学习到这里就结束了,我们明天将开始二叉树的学习。到时候再会!完!原创 2024-05-25 19:03:01 · 1162 阅读 · 0 评论 -
二叉树——基础知识详解
对于二叉树基础的理论知识,我们就学习到这里,虽然这些知识相对后面来说简单一点,但别忘记复习。有了这些预备知识才能够更好的理解后面知识。另外对于递归理解还不够的读者一定要去尽可能的去理解,对于二叉树的学习非常重要。今天的学习就结束了,有问题可在评论区交流,也可私信。我们下篇见!完!原创 2024-05-22 18:47:12 · 1303 阅读 · 0 评论 -
栈和队列经典练习题
前面已经为大家讲解了栈和队列的概念以及如何实现,接下来本博主为大家整理了几道题目,帮助大家更好的理解栈和队列,请大家看完本文后不要忘记练习哦。以上便是全部内容,记得练习。如有问题可私信也可评论区见!完!原创 2024-05-13 07:30:00 · 2444 阅读 · 2 评论 -
数据结构之——队列详解
我们前面已经学习了栈,今天我们来学习队列,队列和栈一样,相对来说比较简单,随后,会为大家准备OJ练习题,敬请期待!只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出进行插入操作的一端称为队尾进行删除操作的一 端称为队头这里简单给大家解释一下:大家肯定都排过队(别说没有,我不信),大家在排好队先前前进时,是不是先站到队伍里的先走。队列的原理何其类似。因为,你可以猜一猜它为什么叫队列。可用下面图片帮助大家理解。明白了,基础知识,那就一起来实现一下队列吧。原创 2024-05-12 06:30:00 · 1401 阅读 · 0 评论 -
数据结构深入理解--栈
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除 操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out) 的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈可以这样理解:相信大家都对枪械有一定粗略的了解,咱们就用压子弹来帮助大家进行理解。压栈,大家可以想象为压子弹,子弹是一发一发往下压,那压栈就是在容量之内一个数据一个数据往下压。原创 2024-05-11 18:07:36 · 1535 阅读 · 0 评论 -
链表经典练习题
本篇文章到这里就结束了,如果有不理解的题目,可私信或在评论区留下问题,记得一定要练习,这是非常重要的。再强调:大部分题目解法只为了抛砖引玉。希望对大家有所启发。完!原创 2024-05-01 13:46:38 · 779 阅读 · 2 评论 -
单链表与双链表实现
/使用目的:方便更改数据类型}SLTNode;注意:在定义节点(写成此结点也无所谓)时不要写成:SLTNode* next;因为编译器把结构体读完时才能达成重写条件。2.2为什么使用一级指针而不用二级指针?1.传入数据之前,链表要进行初始化,为了保护哨兵位,使用一级指针即可,若使用二级指针不会改变哨兵位也可以使用,不过还是推荐使用一级指针。2. 保持接口一致性,减少记忆成本。此链表接口过多,如若一会一级指针,一会二级指针会造成记忆成本。原创 2024-04-13 20:28:07 · 1191 阅读 · 0 评论 -
顺序表应用——通讯录实现
通讯录实现的基础是基于顺序表的实现,对于顺序表如有疑惑之处可翻看之前文章。本篇文章是基础顺序表的扩展,如若觉得不大理解,可翻阅顺序表,顺序表明白了此篇文章也会明白的。完!原创 2024-04-07 17:00:54 · 1070 阅读 · 0 评论 -
数据结构——顺序表(C语言)
这里说明一下:数据结构这方面主要是:数组、指针、结构体这方面内容,因此数据结构可以让我们更好的理解以上内容。我们实现顺序表一共会用两个源文件和一个头文件,具体为什么,扫雷里说过可自行查阅。//大家可想一想把int 命名成seqlist的好处seqlist* a;int size;//有效数据个数//总容量}sl;//结构体命名。原创 2024-04-05 23:32:07 · 1173 阅读 · 0 评论 -
时间复杂度和空间复杂度
从今天开始,我们将正式进入数据结构这个专题,在数据结构中主要以:数组,指针,结构体为主。这三大模板未熟练的可以看看博主之前的文章,有一定基础的可以跟着继续学习。在数据结构中,有着众多的算法,比如查找算法,排序算法等。在查找算法中有顺序查找、折半查找、分块查找等,排序算法中有冒泡排序、快速排序、希尔排序等,而面对这么多的算法,是怎样去衡量算法的执行效率呢?而这也就是此篇文章的重点:时间复杂度和空间复杂度。话不多说,开始我们今天的学习吧。时间复杂度是一种衡量算法执行时间随输入规模增长而增长的速度的度量。原创 2024-05-02 23:57:02 · 1086 阅读 · 2 评论