- 博客(14)
- 收藏
- 关注
原创 C/C++输入机制解析——scanf,cin,getchar,geiline等详解
C/C++的输入依赖缓冲区机制,当我们在键盘输入一串字符时,计算机发生了以下事件:计算机操作系统将你输入的数据放进输入缓冲区程序调用scanf或cin时,从缓冲区取出数据写入变量的内容空间。
2025-11-05 22:56:22
639
原创 单调栈——数据结构
顾名思义,单调栈就是一个栈,其内部元素按照某种单调性(递增或递减)进行排序。从栈底到栈顶,元素按严格递增排序。常用于查找元素左边比他大的第一个数。从栈底到栈顶,元素按严格递减排序。常用于查找元素右边比他大的第一个数。(常考)单调栈本质是通过空间换时间的思想来优化时间复杂度,优点在于只需从某个方向遍历一次列表。
2025-09-18 21:56:22
382
原创 KMP算法——快速查找子串
KMP算法是在一个已知字符串中查找一个子串的位置,又称,其中查找的子串称为。(例如在浏览器中搜索一个关键字,该搜索引擎便会从成千上万的文段中查找被搜索的关键字,这里便是KMP算法的使用场景,其中被搜索的关键字即为模式串,而大量的文段即为主串)
2025-09-07 11:17:31
141
原创 二分查找——数据结构与算法
又称折半查找,是一种针对的高效查找算法。与线性查找(依次遍历每个元素)的 O (n) 时间复杂度相比,二分查找的时间复杂度仅为目标数据必须是的(通常是升序,降序也可但需调整比较逻辑)。例如:数组是有序的,可直接使用二分查找;而这类无序序列则无法应用,因为无法通过中间元素判断目标元素在左侧还是右侧。数据结构需要能够在内获取任意索引位置的元素(即随机访问特性)。常见的满足条件的数据结构是,因为数组的内存是连续的,通过索引计算地址即可直接访问;而不适合,因为链表获取第k。
2025-08-29 17:38:29
346
原创 游戏帧率与计算机程序循环次数的关系
笔者近日在用C语言写贪吃蛇小游戏时,对游戏中贪吃蛇移动间隔的实现产生了一些好奇,在反复拷问AI后,发现绕不开帧率这个话题,而说来惭愧,虽然笔者常常追求高帧率的游戏体验,但是返现自己也说出不到底何为帧率,以及帧率是由何种因素决定的。于是乎,笔者便结合贪吃蛇的移动间隔,对帧率的原理进行了探究。
2025-08-23 18:02:50
270
原创 差分数组------数据结构与算法
在当今的算法与数据处理领域中,区间操作问题可谓是屡见不鲜。诸如在算法竞赛领域,给定一个整数数组,要求对数组中多个指定区间内的元素都增加或减少一个固定值,之后查询数组中所有元素的最大值、最小值或者判断是否满足某种特定的条件。面对这类区间操作问题,如果采用常规的、逐个元素去更新的方式,那么当数据量庞大或者区间操作频繁时,无疑会消耗大量的时间和计算资源,效率极其低下。而差分数组却能够非常高效地对原始数组的连续区间进行增减操作。
2025-04-17 19:03:32
1679
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅