
c语言
文章平均质量分 79
对c语言的知识点文章进行维护
If'Mxuqu
猿猴喜欢圆圆的代码,而我喜欢牛逼的代码,所以我是真牛(不是
展开
-
【蓝桥杯】每天一题,理解逻辑(1/90)【Leetcode 移动零】
cur从左向右遍历,遇到0元素不做处理,遇到非0元素时,让dest+1,然后非零元素与dest所指元素进行交换(将非零元素直接归类到【0,dest】)题目链接:https://leetcode.cn/problems/move-zeroes/description/题目归类数组划分:将一个数组划分成若干个区间。cur遍历到n-1时,结束。原创 2025-02-26 23:04:52 · 2591 阅读 · 26 评论 -
【数据结构&&计数排序】计数排序
非比较排序是一种排序算法,它不是通过比较元素大小进行排序的,而是基于元素的特征和属性排序。这种排序方法在特定情况下,可以做到比元素比较排序(快排,归并)更有效率。尤其是在处理大量数据时。非比较要求输入数据满足一定条件,或者对数据特征进行合理利用常见的非比较排序算法包括通常适用于范围比较小的整数排序,通过统计每个元素的出现次数,然后将元素按顺序放入数组将数据放到若干个桶中,随后对每个桶进行排序,最后再将所有桶的数据进行合并通过将待排序数值按位数分组,逐位进行排序,通常配合计数排序实现。原创 2024-11-27 22:54:16 · 292 阅读 · 2 评论 -
【数据结构算法】归并排序
归并排序的核心思想是将已有序的子序列合并,得到完全有序的序列。合并:合并时,重新创建一个数组数组,下标index,二分完之后,将排序完的元素放到临时数组内,然后拷贝到原数组。注意,递归到底之后,先排序,在回溯,回溯也可以认为是合并,下面可以表示总体的排序。其中,将两个有序表合并成一个有序表的过程称为二路归并。合并完之后,向上回溯,继续排序,两个有序数组合并。begin2:每个右区间开始。begin1:每个区间开始。end1:每个左区间结束。end2:每个右区间结束。递归左区间,递归右区间。原创 2024-11-06 21:37:25 · 338 阅读 · 12 评论 -
【数据结构】快速排序
挖坑法的本质其实是空间挪移,跟七巧板的原理差不多,将无序排成有序,需要有一个空间暂时进行回避,让其他元素进行流通。right先入栈,left在入栈,再出栈,left和right就是区间,找基准值,分区间。栈:后进先出,栈顶进数据,也出数据,栈底不能。右区间入栈,right入栈,keyi+1入栈。左区间入栈,keyi-1入栈,left入栈。右区间【2,2】(只有一个数据也不入栈)左区间【0,-1】(非有效区间不入栈)左区间【1,0】(非有效区间不入栈)左区间【4,3】【非有效区间不如栈】原创 2024-11-05 19:45:00 · 653 阅读 · 1 评论 -
【数据结构】选择排序
时间复杂度:O(n^2)直接选择排序的动图演示。选择排序总体思路解析。原创 2024-11-04 15:54:41 · 376 阅读 · 0 评论 -
【数据结构】插入排序和希尔排序
这种方法通过分组和逐步缩小增量的方式,提高了排序效率。综合来看,希尔排序的效率明显高于直接插入排序算法。重复步骤 2-4,直到 gap = 1,此时相当于直接插入排序。当gap > 1时都是预排序,⽬的是让数组更接近于有序。1.元素集合越接近有序,直接插⼊排序算法的时间效率越⾼。的了,这样就会很快。这样整体⽽⾔,可以达到优化的效果。选定一个整数(通常是 gap = n/3 + 1)。将待排序记录分成若干组,每组内记录的距离相等。缩小增量:gap = gap/3 + 1。希尔排序是对直接插⼊排序的优化。原创 2024-11-01 12:25:47 · 528 阅读 · 0 评论 -
【数据结构&&C语言】【入门】【首次万字详细解析】入门阶段数据结构可能用到的C语言知识,一章让你看懂数据结构!!!!!!!
数组的定义其实非常非常简单;他就是是一组相同类型的集合不理解也没关系,我给你举个例子就好了。数组的定义:数组是一组相同类型的集合给你讲个故事:我认识一个朋友(纯属虚构),她是一个事业心非常强的人,无论任何东西都会以事业和学业为主,所以大多数有选择时,都会选择先忽略自己的感受的选项,平时也不注重打扮,以至于她的家非常乱,家里杂乱无章,到处找东西找不到。后来她喜欢上一个男生,感觉自己的一股屌丝样子配不上他,所以就开始捯饬自己,她开始把自己的房间整理,把袜子和袜子归类到一起,衣服和衣服归类到一起。原创 2024-09-21 17:29:25 · 4040 阅读 · 88 评论 -
【字符函数】strcpy函数(字符串复制函数)+strcat函数(字符串追加)+strcmp函数(字符串比较)【笔记】
1.复制函数--------------strcpy函数函数使用模拟实现。原创 2024-09-19 22:31:43 · 1132 阅读 · 7 评论 -
【C语言】(指针系列四)回调函数+qsort函数
参数传递给另外一个函数指针被用来调用其所指向的函数回调函数并不是一个单一的函数实现然后我们发现这种代码和思路非常非常的冗余,对于初学者来说很友好,但是对于进阶来说,这种重复性的代码不是很好的选择,那么有没有方法让他简化一下哪?当然有,用回调函数,原创 2024-09-15 12:31:58 · 448 阅读 · 17 评论 -
【C语言】(指针系列3)数组指针+函数指针+typedef+函数数组指针+转移表
根据前面学习整型指针,数组指针的时候,类比一下,我们不难得出结论函数指针变量应该是用来存放函数地址的,未来通过地址能够调用函数的。那么函数是否有地址呢?函数的地址确实是有的,同时也验证了函数的地址也是可以用&调取出来的。同时我们观察发现,函数名和取出来的地址是一样的。原创 2024-09-14 15:07:05 · 1213 阅读 · 8 评论 -
【C语言】(指针系列2)指针运算+指针与数组的关系+二级指针+指针数组+《剑指offer面试题》
目录一、指针运算1.1指针+-整数1.2.指针-指针1.3.指针的关系运算二、野指针一.野指针成因1.指针未初始化 2.指针越界访问3.指针指向的空间释放 三、规避野指针1.小心指针越界2.避免返回局部变量的地址3.指针变量不再使用是置为NULL,使用时检查其有效性assert断言四、指针与数组的关系1.数组名2.使用指针访问数组五、字符指针1.字符指针隐藏秘密2.常量字符串《剑指offer》笔试题六、二级指针七、指针数组用指针数组模拟二维数组结尾祝福语指针是一个存放地址的变量,这些我们都知道,但是对于一原创 2024-09-13 12:11:03 · 1267 阅读 · 18 评论 -
【C语言】了解函数,认识函数
IO函数字符串操作函数字符操作函数 内存操作函数时间/日期函数 数学函数 其他库函数以上就是常见的库函数,如果对于哪里的函数不了解,可以根据我上面的网站自行学习。自定义函数和库函数是一样的,本质定义差不多ret_type fun_name(形式参数)若函数有返回值,则要有返回值的类型,如int,double等等。若函数没有返回值,则函数名前要加void。函数的参数(形式参数),当然参数名前也要加上类型。最后是函数体,记得要用{括起来}例如:写一个减法函数int main()原创 2024-09-09 11:14:21 · 1336 阅读 · 11 评论 -
认识一维数组与二维数组
数组的定义:数组是一组相同类型的集合。举个例子:你看到你的房间比较乱的时候,人最先想到的整洁的方式是整理归类,比如你看到床上衣服和袜子在一起,你会讲袜子和袜子放在一起,衣服和衣服放在一起,而衣服和衣服的归类,袜子和袜子的归类,便称为相同类型的集合。type arr_name[常量值]类型+数组名[元素值/下标]创建例子:int arr[10];这就是数组最简单的创建,也是萌新入门数组的基础在这里值得一提的是!!!下表是从0开始的,具体应用请见2.数组的多种初始化2.数组的多种初始化。原创 2024-04-16 20:21:11 · 969 阅读 · 1 评论 -
C语言基本数据类型的类型与基本数据类型的长度
c语言的数据类型的长度探索与数据类型原创 2024-04-14 22:21:50 · 1213 阅读 · 3 评论