- 博客(28)
- 收藏
- 关注
原创 排序算法(c++)
从第一个开始到最后一个找最小的一个放到第一位,再从第二个开始找最小的(其实是第二小)放到第二位,依次排序。先找最大的,第一个和第二个比较,第二个和第三个…最后一个就是最大的值,依次类推。玩纸牌游戏,插牌时先在已经排好的手牌中找好位置在插入这就是插入排序。
2023-10-15 18:51:21
130
原创 stl容器-set
存储唯一元素顺序存储的容器,并且不能修改元素大小,但是可以插入删除操作。判断容器是否为空,不空false,空true。返回第一个大于等于x的元素的迭代器。返回第一个大于等于x的元素的迭代器。头文件#include返回容器尾部元素下一位迭代器。返回容器最大元素个数。交换两个容器内的元素。
2023-10-15 18:50:44
131
原创 链表(数据结构)
这两部分组成数据元素a的存储映像称为结点,存储元素信息的话域叫数据域,存储下一位的位置的域叫指针域,n个结点链成一个链表。特点:使用一组任意的存储单元存储线性表的数据元素,所以对数据元素a来说,除了要存储本身信息还要存储下一位元素的位置。整个链表的存储必须从头指针开始,链表最后一个结点的指针为空(NULL)。定义:每一个结点只有一个指针域的链表。
2023-10-03 07:14:49
79
原创 acwing 饥饿的牛
把两个计划日期的差值和第一个计划的干草相比较,如果日期差值大于第一个计划的干草,那么这段时间就只有干草个数的日期吃草。反之就这段时间全能吃到干草,并将这段时间剩下的干草加入下一个计划。
2023-10-03 07:14:06
70
原创 某一天到未来一天差值问题
在遍历的过程记录到最小值,同时还比较每次的差值,最后得出最大差值。代码形式上就是每组i和j(j>i),找到最大的[j]-[i]。从第0位依次枚举数组里的两个数字,找出之间的最大差值。0x3f3f3f3f可以看成是10^9。
2023-10-03 07:13:33
219
原创 顺序表(数据结构)
tupedef关键字作用:是将一个复杂的类型重新定义一个更加方便的别名。例tupedef unsigned int st;st a;
2023-09-26 14:58:55
60
原创 realloc
ptr是指向原来地址的指针,如果ptr为空指针,那么realloc就和malloc一样length是新的长度。如果开辟成功则将旧的数组拷贝到新的数组,释放旧的数组,再返回一个指针。开辟失败就返回一个空指针,原数组不动。和malloc一样不要忘记判断。作用:用于修改一个原本已经分配的内存块的大小。
2023-09-20 20:07:17
118
1
原创 动态分配内存malloc
malloc常与free搭配使用使用:elemtype* s=(elemtype*)malloc(length*sizeof(elemtype))//申请一个长度位length的elemtype类型的空间。作用:寻找一块合适的内存,如果寻找成功返回内存第一个字节的地址(默认是指向void指针)不然返回指针NULL。所以每次使用malloc不要忘记判断内存申请是否成功。当内存不在使用时应当使用free函数释放掉。
2023-09-14 20:25:19
126
1
原创 kruskal(克鲁斯卡尔算法)
算法思路:将图存入结构体数组中并按照边的权值排序,每次都选择权值最小且边两边的点不在同一集合中,将这条边加入到树中,然后合并两个集合。重复上述操作直到选择的边的个数是n-1时停止。kruskal是一种基于并查集和贪心思想的最小生成树算法。kruskal(克鲁斯卡尔)算法。
2023-09-05 14:03:16
263
1
原创 并查集c++
并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。并查集思路:类比收小弟过程,一开始集合中每个元素都是自己的老大(初始化a[i]=i),在帮派合并的过程中肯定要找老大决定的(查找操作),0号击败了1,那1的老大就是0了(a[1]=0)。
2023-08-31 19:31:45
155
原创 prim算法(最短生成树)
prim算法是基于贪心的思想寻求最短生成树,使用三个数组来实现的,第一个二维数组存点到邻点的边长,一个一维数组ju[i]存树任何一点到i点的最短路径,bool数组防止重复累加,思路是从起点出发,遍历起点能达到的点的距离,将其中最短的距离到达的点加入集合,更新集合能达到的点的最短距离,重复上述操作,直达所有的点都在集合中,结束。
2023-08-29 14:34:07
240
1
原创 c/c++输入输出
s->字符串,%c->字符(可以读取空格,回车),%d->int类型,%u->unsigned int类型,%ld->long long类型,%f->float类型,%g也可以输入输出float类型,但是它会清空多余的0,%lf->double类型,同理%lg也可以输入输出double类型。%.nf输出n位小数的浮点数,%nd输出n位,不足用空格补足,%0nd输出n位,不足用0补足,//在遇到回车不会立即停止,会读取回车,格式:scanf("%c %c %c %c",&a,&b,&c,&d);
2023-07-27 19:58:15
167
1
原创 口算练习题
sprintf(string,"%d%",int)是数据与字符串之间的转换,在头文件<cstido>atoi是将字符串转化成数字,在头文件<cctype>isalpha()函数是可以判断是不是字符。
2023-07-21 19:56:01
168
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅