自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 C语言小项目:五子棋(三)

首先,我们可以利用排序,让他从鼠标所下的点的前4位,判断颜色是否连续相等,我们将FLAG%2==1的条件设为黑棋胜利,将FLAG%2!这里的变量temp就是为了作为一个标志,判断连成的棋子颜色是否一致。四种排列方式:竖线,横线,左上到右下,右上到左下;

2025-06-10 02:00:00 306

原创 C语言项目:五子棋(二)

用C语言做一个小游戏

2025-06-09 00:00:00 393

原创 C语言项目:五子棋(一)

用C语言做一个五子棋小游戏

2025-06-08 16:05:00 852

原创 (dijkstra,最短路径问题)3341. 到达最后一个房间的最少时间 I

假设你当前处于时间t,想要移动到相邻格子(nx,ny):如果当前时间t已经大于等于moveTime[nx][ny],那么你可以立即移动过去,到达时间是t + 1,如果当前时间t小于moveTime[nx][ny],那么你必须等待,直到时间达到moveTime[nx][ny]才能进入,到达时间是moveTime[nx][ny] + 1。如果当前时间t小于moveTime[nx][ny],那么你必须等待,直到时间达到moveTime[nx][ny]才能进入,到达时间是moveTime[nx][ny] + 1。

2025-05-12 01:42:45 764

原创 Dijkstra算法简要-个人理解

对于到顶点1的边,v = 1,weight = 10,由于 dist[0] + 10 = 0 + 10 = 10 < dist[1](此时 dist[1] 是无穷大),就是存储Edge类型的二维数组,变量名叫graph,至于vector,是C++库函数中的一个类似快捷创建动态数组的一个函数名,具体用法可以AI搜一下。对于到顶点2的边,v = 2,weight = 3,因为 dist[0] + 3 = 0 + 3 = 3 < dist[2](此时 dist[2] 是无穷大),,分别表示第一个和第二个元素。

2025-05-09 00:44:32 1031

原创 快速排序及优化方法

先设置好大框架,while(x<y),这里选择序列最左边的元素为基准值,所以先从序列的右边和这个基准值进行比较(我们将这个序列按从小到大的顺序输出), 如果右边arr[y]比基准值小,我们就将y--,然后继续与基准值比较,直到找到小于它的元素,然后跳出循环,进入if判断语句,向这里if后面的语句分为两步理解,先赋值,后++,arr[x]=arr[y],x++;具体类似无监督插入排序,简单的理解就是优化判断条件,减少判断条件次数 ,优化分区代码执行过程中的判断条件,减少判断次数,进而减少算法的运行时间。

2025-04-26 21:42:11 497

原创 哈希查找的代码(C++,C版),以及哈希函数的使用

char *s;}Node;Node *data;}Hashtable;首先,Node就是一个节点类型的结构体,用来作为哈希表的一个单元格,其次Hashtable就是哈希表结构体,Node结构体里面的next后面会用来作为一个解决哈希冲突的办法,hashtable里的data就是定义一个Node类型的数组,用data指针指着,其中cnt是用来记录数组data存储多少元素,size是用来定义这个Hashtable有多少个存储单元,即多少个Node结点。return p;

2025-04-18 00:54:06 659

原创 希尔排序(二)——Hibbard增量序列

增量过大,超过数组长度的一定比例(如超过一半),可能会过度打乱数组元素之间的相对顺序。这可能破坏一些已经部分有序的子结构,使得后续的排序工作更加困难。超过数组长度的一定比例(如超过一半),可能会过度打乱数组元素之间的相对顺序。这可能破坏一些已经部分有序的子结构,使得后续的排序工作更加困难。一般情况Hibbard应用在希尔排序里面,达到的时间效率更趋于稳定。例如:1,3,7,15,……(后面还会再次提到)

2025-04-11 00:24:06 1009

原创 希尔排序两种时间复杂度(一)

(考研同学注意,只要某个题或是选项说希尔排序的时间复杂度固定为***的时候,一定是错的。# n为待排序序列的长度,O(n²):希尔增量序列 n/2、n/4、n/8、n/16、……O(n^1.5)1.5次方 Hibbard增量序列:1、3、7、……-1 ……虽然只减少了0.5次方,但是在数据很大的情况,会减少很多时间。

2025-04-10 01:50:20 644

原创 1、插入排序变无监督的插入排序

只有当前元素调整到第一位的时候他才生效,进行一个预处理,将全局最小值放到第一位,后面的部分在进行插入排序,再执行插入排序的时候,任何元素都不会被调整到第一位上,那么'j>i'的条件就可以去掉了。因为,直接插入排序是一个稳定排序算法,所以直接交换有可能使得交换排序算法不稳定,就不能被单纯的认为是一个插入排序,所以在记录好下标位置后,进行一步一步的交换。1、这个条件只有当前元素调整到当前元素的第一个位置的时候,这个判断条件才能生效;作用:防止下标访问越界,防止i-1越界,被称为。最后实现无监督的插入排序。

2025-04-10 00:08:48 302

原创 第五周-函数

1、如果被调函数有返回值,主函数需要定义一个与返回值类型相同的变量,去接收被调函数的返回值。①如果函数返回值类型与return后的数据类型不一致,以函数声明时的返回值类型为准;将实参的值传进形参中(相当于传递的是实参的复制体),对于形参的改变不会影响实参;分配栈空间:给被调函数中出现的变量分配栈空间,这个栈空间有一个专有名词叫栈帧。函数返回值可以返回函数的运行状态,也可以返回要告知外界的信息。如果没有写函数返回值类型,默认函数返回值类型为int型。如果没有返回值信息,函数的返回值类型写为void。

2025-03-30 21:00:00 222

原创 第四周字符串常用函数

原型:int strcmp(const char* str1,const char* str2)注意:当字符串存在多个拆分标志的时候,对于delim这个参数写的时候,可以不用在乎分隔符的顺序。返回值:返回值是一个指针,指向被分割的字符串,当最后一次调用找不到分隔符时,会返回为NULL。base:要转换的进制基数,比如要转换为十进制,基数就是10,要转换为2进制,基数就是2。函数原型:char* strtok(char* str,char* delim)printf("十进制字符串:%s\n", str);

2025-03-30 17:06:54 491

原创 3.字符串作业

【代码】3.字符串作业。

2025-03-30 16:42:04 89

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除