- 博客(12)
- 收藏
- 关注
原创 Top-K 问题 (堆)
K 问题是一类常见的算法问题,其中目的是从一组元素中找到排名前K的元素。具体来说,对于给定的一组数据,Top-K 问题要求找到其中最大(或最小)的K个元素。
2024-08-25 13:40:35
415
3
原创 数据结构--堆
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。大根堆:每个根节点都不小于子节点的堆叫大根堆。小根堆:每个根节点都不大于子节点的堆叫小根堆。
2024-08-15 12:16:54
461
3
原创 贪吃蛇小游戏 (C语言)
API是Application Programming Interface的缩写,即应用程序接口,它是由Win32操作系统提供给程序员的一系列函数接口的集合,这些函数可以对计算机系统进行各种各样的操作,比如创建窗口、描绘图形、使用周边设备等等,它们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。简单来说 Win32 API 就是Microsoft Windows 32位平台的应⽤程序编程接⼝。本文涉及到部分Win32 API 接口。接下来一一讲解。1. 控制台指令。
2024-07-14 17:21:26
1189
2
原创 详解 qsort()函数
参数的类型为void*(无类型指针),这样设计的原因是因为不清楚要比较的元素是什么类型,而void*类型的指针可以接收任意类型的指针,这样就避免了因类型不符而产生的错误。如果参数p1<p2,则返回一个小于0的数。——函数指针,指向的是两个元素的比较函数,有两个void*类型的参数,返回类型是int。qsort()函数是一个用来排序数据的库函数,底层使用的是快速排序的方式。——base指向的待排序数组的元素个数,类型是size_t(无符号整型)。——base指向的待排序数组的元素大小,
2024-03-15 16:43:06
340
1
原创 (C语言)冒泡排序法
假设要从小到大序,如果第一个数小于第二个数,则位置不变,不对数组进行任何更改。否则,如果第一个数大于第二个数,则将第一个数移动到第二个数的位置上,将第二个数移动到第一个数的位置上,即两个数的位置分别交换!然后再将第二个数和第三个数进行比较,以此类推,经过这样的比较后,第一轮的比较结果肯定是数组中的最大值移动到了最后一位。冒泡排序原理: 从数组中的第一个数字开始,依次和它相邻的数进行比较。冒泡排序的优点:每趟排序之后就会少一个元素。我们看进行排序的循环代码。
2024-03-10 18:08:02
276
1
原创 C语言实现简易扫雷游戏
棋盘介绍:扫雷游戏棋盘上有两种格子,一种是安全的格子,一种是包含地雷的格子。游戏目标:找出所有的地雷!更准确地说是——在避免踩到地雷的情况下探索所有的格子。扫雷游戏胜利的条件是揭示所有不包含地雷的格子。如何避免踩雷:利用安全格子提供的信息,我们可以推断一个格子附近的格子有没有雷。安全格子的类型:数字:表示它周围八个格子中地雷的数量。如下图所示,中间红框框起来的数字2代表它外面一圈的八个格子中有2颗地雷,这里用红旗标起来了。
2024-02-06 18:41:30
821
1
原创 C语言分支语句与循环语句
判断表达式,若表达式的值为0,循环直接结束;若表达式的值不为0,则执行表达式中的语句,语句执行完后在继续判断,是否进行下一次。达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。我们发现,7除以3本来余数是1,但是我们发现程序运⾏的结果多了⼀⾏“余数是2”的打印。这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳。循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏。语句,代码会继续往下执⾏,有可能执⾏其他。语句是⾮常重要的,能实现真正的分⽀效果。就⽐如上⾯的代码就执⾏了。
2024-01-23 23:12:36
819
1
原创 输入三个数,并输出三个数的最大值
假设a为最大值,然后将它与b比较,如果b大于max,则将b的值赋给max。接着再将它与c比较,如果c大于max,则将c的值赋给max。最后max中存放的就是最大值,将其输出。定义一个变量max,用来存放最大值。先定义三个变量,输入三个数。此题需要用到分支结构。
2024-01-21 20:06:24
887
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人