- 博客(19)
- 收藏
- 关注
原创 算法带刷——轮转数组
每一次轮转时都将最后一个保存,然后将前一个的数值移到后面一个,直到数组的第一个为空时,我们将最先存储的数据放到第一个中,这样完成了一次轮转,最后用循环来控制次数。我们发现轮转k次就是把倒数第k个后面的(即把后k个)的数据放在前面,再将前size-k个数据放在后面的位置,我们可以定义一个新数组来完成以上操作。倒数第k个后面的(即把后k个)的数据放在前面,再将前size-k个数据放在后面的位置,可以合并成一个操作。这个方法将时间复杂度降到o(n),空间复杂度为o(1)
2024-10-21 17:13:48 346
原创 详解队列(带你五分钟了解队列)
概念:只允许在一段进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的性质。入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一段称为队头。
2024-10-21 14:53:27 484
原创 详解栈(五分钟快速了解栈)
栈是一种特殊的的线性表,其只允许一段插入和删除元素的操作。进行数据插入和删除的一端叫栈顶,另一端叫做栈底。栈遵循先进后出的原则。压栈:栈的插入操作叫做进栈、压栈、入栈。入数据的地方在栈顶。出栈:栈的删除操作叫做出栈。删除数据的地方在栈顶。栈的底层结构:一般是数组(其实数组和链表都可以实现栈,但链表在尾插入时时间复杂度为o(n),用数组来实现更有优势,代价更小)
2024-10-20 15:42:11 334
原创 详解单链表
(1)链式机构在逻辑上是连续的,在物理结构上不一定连续(2)结点一般都是从堆上申请(3)从堆上申请来的空间,是按照一定策略分配出来的,每次申请的代码可能连续,可能不连续。
2024-10-18 12:33:55 148
原创 算法复杂度
m因为在不同的环境、编译器等情况下每次算法运行的时间都会有所不同。我们没有办法算出实际使用时间所以我们假设每一条指令的时间是相同的,执行时间就和执行指令次数和指令执行时间成正比,我们就可以用执行次数来表示程序执行的快慢。即用T(N)函数来表示。计算算法在运行中因为算法的额外临时开辟的空间,因为常规情况下每个对象大小差异不会很大,所以我们用变量的多少来计算空间复杂度。(因为函数运行所需要的栈空间(存储参数,局部变量等在编译时已经确定好了,因此空间复杂度主要通过函数在运行时显示申请的额外空间来确定))
2024-10-13 15:02:07 406
原创 指针之我见(史上最全)
指针也是一个变量,也有地址,我们把指针的地址存储起来就叫二级指针.我们把数组的地址传给指针,指针里存放着数组的地址就叫数组指针。形如int (*p)[10], 该指针的类型是int(*)[10],*p表示p是一个指针,int [10]表示数组指针所指向的是一个大小为10个整形的数组我们将函数的地址传给指针,指针里存放着函数的地址就叫函数指针。形如:int(*pa)(int x, int y)
2024-08-12 15:47:52 525
原创 C语言初级扫雷小游戏详解
因为我们的扫雷小游戏的代码有些长,为了不显得太繁杂,我们分为test.c game.c game.h三个文件test.c写主程序。game.c写游戏的程序。game.h写头文件。
2024-07-31 17:55:08 932
原创 函数之我见
在写程序的过程中可能有一些功能需要实现但并没用与之对应的库函数就需要我们自定义函数,其实库函数就是我们经常能用到的一些函数,官方进行了统一不需要我们自己写大大提升了效率。
2024-07-25 23:22:44 646
原创 数组之我见
数组是一个相同类型数据的集合:1.数组存放一个或多个数据,但不为0。2.存放数据的类型是相同的。数组分为一维数组、二维数组和多维数组。
2024-07-21 22:08:45 353
原创 我的C语言学习之路
我是一位来自电气及其自动化专业的一位准大二生,我们专业涉及了一些C语言的知识,学校也开设了一些相关方面的课程,但由于学校课时的原因我对于C语言仅仅掌握了一些知识点,大量的知识未学习,加之我又报名下半年的计算机二级考试,所以打算这个暑假学习C语言。每周在CDSN上发表一篇我对于C语言一些知识点的见解。每天下午花一到三小时的时间在网上学习C语言。每周尽量有五天的gitee的贡献量。目前并没有目标的公司。
2024-07-13 10:56:50 200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人