- 博客(10)
- 收藏
- 关注
原创 快速排序--三种方法
int RLQuickSort(int* a, int left, int right)//左右指针法单趟排序。//int DHQuickSort2(int* a, int left, int right)//挖坑法2。int QSQuickSort(int* a, int left, int right) //前后指针法。int DHQuickSort(int* a, int left, int right)//挖坑法。
2024-04-14 18:28:55
367
1
原创 堆排序详细讲解
我把堆排序大致分为两步:堆:我们一般把堆分为两种,第一种是小堆(所有的孩子结点都大于父节点),这里的大于指的是结点对应的值,而不是下标,第二种是大堆(所有的父节点都大于孩子结点).1.建堆,所谓建堆就是先把给定的数组进行重组,如果我想要数组进行排序,那么我们就必须建大堆,这里如果不明白为什么建大堆,不要紧,后面我会解释。2.堆排序,当我们将数组建成了大堆的时候.接下来就需要进行排序了,排序我认为还是比较简单,主要是建堆比较麻烦。这两步不理解不要紧,看完整篇文章,再回过头来看这两步就知道为什么了。
2024-03-23 18:51:41
293
1
原创 带头的双向循环链表
定义一个头文件slist.h(声明)、slist.c文件(用于实现相应的功能)、test.c(测试文件)2.对双向循环链表进行一系列操作(头插、尾插、指定位置插入,头删、尾删、指定位置删除,查找...)测试了几遍,没有错误,可能并不完全正确,但90%全部正确性,我认为还是可以的!②初始化虚拟头节点,并设置节点里面成员的值。1.初始化虚拟头节点(无效节点).....后面的操作下次来补。
2024-02-04 21:40:24
330
1
原创 一些细节知识(C语言)
②p1没有整个数组地址的概念,比如: &p1,sizeof(p1),在不改变它的地址的情况下,它永远是字符a的地址.这里我们就可以使用 p1[0],p1[1],*(p1+2)....等等类似数组的操作,但这里有两个例外。char p2[]="abcdef" //p2是数组名----①首元素地址 ②整个数组的地址。这里的p1可以当作p2来使用,也就是说在内存里面也存放了abcdef这几个值(p1)char* p1="abcdef" // p1存放的是a的地址。常量字符串和字符数组的区别。
2023-11-22 18:21:18
130
原创 查找只有唯一的数
②总是花费大量时间做题,其实我觉得吧,如果写题目的时间太长了还是放弃吧,去看看网络上的大神是如何写的,毕竟我们人的精力和时间总是有限的。⑤这里会有一个很重要的点,就是我们找数的时候,第二层循环总会匹配到本身,那么这样的话,我们永远也不会找到这么一个单数(单身狗),因此我们得想办法跳过本身这个判断。①完美主义比较严重,如果兄弟们有和我一样的,扣1,学计算机真的要克服这种心理啊,太难受了,最起码我是这样的。在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字。
2023-11-08 21:33:29
64
原创 有趣的小算法
今天练了一道题,可真的把我给累的,累就算了吧,人都快麻了,基础不行,没得办法,只能继续练啦,话不多说,来看看把我难住的题目有些人觉得是不是比较简单啊,但我不觉得,因为我的基础真的差,因此看了别人怎么写的但功夫不复有心人,无意中在下一个类似的题目,发现了一个小算法,也算是提升了吧!话不多说来看看我写的这个题目和我的解题思路这就是题目,来说说我的解题思路吧,当然小伙伴们可以先试着做做,看看能不能做出来首先既然题目是想要这么一个图形,干脆我们就把这个图形先初始化为这个。
2023-10-28 16:38:19
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人