
C语言
文章平均质量分 85
主要写一些学习笔记和一些突发灵感的想法
LeePlace
睡觉
展开
-
快速排序(QuickSort)
最保姆级的快速排序讲解,文章用步步图解的方法去讲解快排三种单趟排序的实现,分析了快排的实际复杂度和稳定性,并提出了优化方法,分别实现了快速排序的递归版本和非递归版本。原创 2022-09-04 19:36:27 · 1412 阅读 · 0 评论 -
归并排序(MergeSort)
文章从浅入深,步步推进,详细讲解了归并排序的思路和递归和非递归两种代码实现方式。原创 2022-09-17 00:46:29 · 3267 阅读 · 0 评论 -
a += 1 += 1为什么是错的?
通过一个案例深刻认识简单的赋值运算原创 2022-08-04 16:03:54 · 250 阅读 · 0 评论 -
浅学一下二叉树链式存储结构的遍历
二叉树的前序遍历、中序遍历、后序遍历、层序遍历(数组模拟栈、链表模拟栈)原创 2022-08-03 14:10:34 · 914 阅读 · 0 评论 -
浅学一下二叉树的顺序存储结构——堆
文章介绍了树和二叉树的一些基本概念问题,主要讨论的堆的几个相关函数、堆排序和用堆排序解决TopK问题。还有关于建堆的时间复杂度等的讨论。原创 2022-07-29 16:56:19 · 1027 阅读 · 0 评论 -
【数据结构与算法】时间复杂度和空间复杂度
目录什么是时间复杂度和空间复杂度?大O的渐进表示法常见时间复杂度计算举例常见空间复杂度的计算什么是时间复杂度和空间复杂度?简单来说,时间复杂度和空间复杂度是衡量一个算法效率的。时间复杂度对应时间效率,空间复杂度对应空间效率。其中时间效率并不是说程序具体执行了多久,单给一个程序一个算法是不能确定它的执行时间,因为你需要在机器上跑起来才能确定。而一个算法所花费的时间与其中语句的执行次数成正比,所以就定义算法中基本操作的执行次数为该算法的时间复杂度。其中空间效率也不是说一个算法在运行过程中临时占用多少原创 2022-05-03 23:52:24 · 2376 阅读 · 0 评论 -
【数据结构与算法】顺序表
目录顺序表的概念和结构顺序表各个接口的实现创建顺序表初始化顺序表顺序表打印检查空间,如果满了,进行增容顺序表尾插顺序表尾删顺序表头插顺序表头删顺序表查找删除指定位置的值在指定位置插入顺序表销毁总结完整代码SeqList.hSeqlist.c顺序表的概念和结构顺序表是数据结构中线性表的一种。用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。像之前的通讯录,其本质上就是顺序表。那么很显然,顺序表相应的就有动态和静态两个版本。其中静态版本中数原创 2022-05-08 13:09:13 · 930 阅读 · 3 评论 -
【数据结构与算法】链表
目录什么是链表?单链表创建节点开辟一个新节点单链表尾插单链表尾删单链表头插单链表头删单链表查找单链表插入 - 在给定位置的后部插入单链表插入 - 在给定位置前面插入单链表删除 - 删除给定位置的节点单链表删除 - 删除给定位置后面的节点打印单链表单链表销毁小结带头双向循环链表声明定义节点结构开辟一个新节点创建哨兵位的头节点尾插尾删头插头删查找在给定位置前面进行插入删除给定位置的节点打印销毁链表小结总结什么是链表?我们知道顺序表是以数组的形式存放数据,由于数组是连续存储的,所以顺序表是连续存放数据的,这个原创 2022-05-15 16:33:45 · 1021 阅读 · 2 评论 -
【数据结构与算法】栈和队列
文章目录栈什么是栈?栈的实现代码实现栈的声明初始化栈判断栈是否为空入栈出栈返回栈顶的值获取栈中有效元素的个数销毁栈队列什么是队列?队列的实现代码实现队列的声明初始化队列判断队列是否为空队尾入队列队头出队列取队头的数据取队尾的数据返回队列的数据数销毁队列销毁队列栈什么是栈?栈是线性表的一种。它只允许在固定的一端进行插入和删除元素操作。而进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。所以栈增删元素就有了我们常说的先进后出(Last In First Out):压栈:栈的插入操作叫做进栈/压原创 2022-05-19 21:16:02 · 622 阅读 · 1 评论 -
【C语言】斐波那契数列和青蛙跳台阶(最详细的初级青蛙跳台阶)
小白也能看懂!原创 2022-02-15 17:37:10 · 726 阅读 · 1 评论 -
【C语言】整型提升 - 关于short短整型和char字符型的运算
前言C的整型算术运算总是至少以缺省整型类型,也就是默认整形类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。何为整型提升 -整形提升是按照变量的数据类型的符号位来提升的1. 正数的整型提升char c1= 1; 变量c2的二进制位(补码)中只有8个比特位: 00000001 因为 char 为有符号的 char 所以整形提升的时候,高位补充符号位,即为0 提升之后的结果是: 000000000..原创 2022-03-05 20:39:22 · 1644 阅读 · 0 评论 -
【C语言进阶篇】数据在内存中的那些事,你需要知道这些
本篇文章深度剖析了整型和浮点型在内存中的存储,读完文章会对这两个问题有更深刻的认识。原创 2022-03-15 22:21:39 · 1131 阅读 · 5 评论 -
【C语言进阶篇】指针进阶(一)- 字符指针&&指针数组&&数组指针
呜呜呜好难啊!!!原创 2022-03-17 22:12:28 · 1010 阅读 · 1 评论 -
【C语言】指针初阶 - 认识野指针和指针的运算
3.野指针什么是野指针?野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)野指针是怎么形成的呢?1.指针未初始化int main(){ int *p;//局部变量指针未初始化,默认为随机值 *p = 20; return 0; }事实上,上面这个代码是无法运行的:2.指针越界访问int main(){ int arr[10] = {0}; int *p = arr; int i ...原创 2022-03-06 23:27:46 · 763 阅读 · 0 评论 -
【C语言进阶篇】指针进阶(三)回调函数 - 使用并模拟实现qsort函数
本文主要用具体的例子讲解了回调函数机制,并逐渐深入,写出了我们自己的通用排序算法。原创 2022-03-21 19:57:30 · 557 阅读 · 4 评论 -
【C语言】满分通讯录,保姆级教程,不来看看?
有了它,作业不愁啦!原创 2022-04-27 21:35:15 · 2022 阅读 · 8 评论 -
【C语言刷题】可能难住过你的三道有趣打印题 - 回形矩阵、蛇形矩阵、Z字形变换
本文用图解的方式,以最简单的思路带你手把手解决这三个问题,但更重要的是要学会举一反三。原创 2022-04-03 17:45:05 · 1389 阅读 · 3 评论 -
【C语言】入门必看 - 操作符详解
重点:各种操作符的介绍和表达式求值操作符算术操作符: + - * / %原创 2022-03-05 16:42:09 · 437 阅读 · 0 评论 -
【C语言】关于局部变量在堆栈中的存储 - 只从表面浅浅认识一下
浅浅认识一下下原创 2022-03-12 13:56:03 · 8110 阅读 · 4 评论 -
【C语言进阶篇】一篇文章带你认清结构、枚举和联合
文章内容参照了多处资料,再加上我本人的理解,可以很好的帮助初学者认识三种特殊的数据类型。可以当成笔记看吧,图一乐~原创 2022-04-22 00:54:24 · 285 阅读 · 16 评论 -
【C语言进阶篇】动态内存分配和数组的动态内存分配
本文主要介绍了C语言中常用的内存函数和数组的动态内存分配,并稍微提了一嘴柔性数组。动态内存分配是C语言中十分重要的一环,其中对二维数组的动态内存分配是个难点,需要多思考。原创 2022-04-23 00:26:56 · 33393 阅读 · 19 评论 -
【C语言进阶篇】指针进阶(二)指针、数组与函数,你需要知道这些
本文详细讲解了 数组传参和指针传参、函数指针、函数指针数组、指向函数指针数组的指针 四部分的内容,适合新手入手和老手复习。码字不易,点个赞吧。原创 2022-03-20 23:58:10 · 1323 阅读 · 3 评论 -
【C语言】指针初阶 - 指针?数组?二级指针?
认识指针和数组的关系以及二级指针。原创 2022-03-09 20:28:36 · 899 阅读 · 0 评论 -
【C语言】指针初阶 - 认识指针和指针变量
初始指针第一课原创 2022-03-06 21:22:46 · 258 阅读 · 0 评论 -
【C语言】实现简易的扫雷游戏
目录一、文件分组二、基本流程三、代码实现四、完整代码展示五、补充一、文件分组game.h - 定义符号和函数 game.c - 定义与游戏功能实现有关的函数 test.c - 测试游戏二、基本流程首先要进入游戏界面,也就是打印游戏菜单 初始化设置好的棋盘 打印最初的棋盘,也就是游戏开始时 在设置好的棋盘中设置雷 排查雷,也就是游戏的核心 - 扫雷三、代码实现game.h博主定义的是9*9的棋盘,但是在扫雷过程中,统计周围雷的数量时棋盘边界...原创 2022-02-22 12:06:51 · 1995 阅读 · 0 评论 -
【C语言】关键字const详解 - 变量守护者
关于const的作用,你需要知道这些。原创 2022-03-12 00:10:17 · 1738 阅读 · 0 评论 -
【C语言】三子棋,但不止三子棋(很细很细很细)
模块化game.h - 定义符号和函数 game.c - 定义函数 test.c - 测试游戏函数功能具体化menu() - 打印菜单 game() - 搭建游戏框架 InitBoard() - 初始化棋盘 DisplayBoard()- 打印棋盘 - 难点 PlayerMove() - 玩家下棋 ComputerMove() - 电脑下棋 IsWin - 判断游戏状态 - 难点头文件game.h - 与游戏有关的函数均在头文件中声明#include <stdio.h&g.原创 2022-02-18 15:14:04 · 2795 阅读 · 2 评论 -
【C语言进阶篇】字符和字符串函数 - 总有一款适合你
本文详细介绍了几种常用的字符串函数和简介了字符分类函数,可用做笔记参考复习。原创 2022-03-26 23:37:37 · 1428 阅读 · 5 评论