- 博客(13)
- 收藏
- 关注
原创 C语言小项目:五子棋(三)
首先,我们可以利用排序,让他从鼠标所下的点的前4位,判断颜色是否连续相等,我们将FLAG%2==1的条件设为黑棋胜利,将FLAG%2!这里的变量temp就是为了作为一个标志,判断连成的棋子颜色是否一致。四种排列方式:竖线,横线,左上到右下,右上到左下;
2025-06-10 02:00:00
306
原创 (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
空空如也
<gitee bash,蓝鲸智云,Python>有没有铁铁看看,这是啥问题
2024-10-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人