摘要: 排序 插入排序 直接插入排序: 操作流程:a[1...i-1]有序,a[i..n]无序,选取a[i]插入到前面有序的数组中去,插入到位置k,再将有序的a[k...i]整体向后移动一个位置 空间复杂度:O(1),没有产生额外的空间,原地变化。 时间复杂度:O(n^2),最坏情况下,每一次找到的k值插入 阅读全文
posted @ 2023-05-18 10:30 dueyu 阅读(31) 评论(0) 推荐(0)
摘要: 栈、数组、队列、串 栈 定义: 删除和输入都在同一端的线性表,后进先出 顺序栈 定义一个线性表,用栈顶指针来控制栈元素的进出。 链式栈 定义一个头结点,一直指向栈顶,插入新结点时,更新头结点。优点:不会溢出,空间无限 共享栈 两个栈分别放在栈顶和栈底,存入的数据向中间靠齐。优点:节省存储空间。降低发 阅读全文
posted @ 2023-05-13 12:55 dueyu 阅读(28) 评论(0) 推荐(0)
摘要: 最小生成树 定义:生成树包含连通图的所有顶点,以及n-1条边。最小的含义是,边权和最小 性质: 1、最小生成树的树形不唯一。如果图的每条边权都互不相等的时候,该最小生成树的唯一的。 2、最小生成树的边权和是唯一的且最小的。 3、边数为顶点数-1 通用算法: Prim算法: 1)从任意一个顶点开始,找 阅读全文
posted @ 2023-05-07 19:30 dueyu 阅读(93) 评论(0) 推荐(0)
摘要: BFS 算法概述: 创建一个空队列。从某个点开始,找到该点所指向的所有的点并且没有被标记过的,放入队列中,并且对当前的点做标记,表示被遍历过了。再从队列中取出新的点,重复前面的操作。直到队列为空。 由于图不一定是连通的,需要遍历1~n个点。 要点: BFS类似于树的层次遍历,由于存储的边的顺序可能不 阅读全文
posted @ 2023-05-07 13:55 dueyu 阅读(38) 评论(0) 推荐(0)
摘要: 质数: 1、判断质数 试除法:从2开始循环,到判断数 X 的sqrt(X)为止即可,若存在约数,则一定<=sqrt(X),不然则本身为质数。(由于约数本身的成对出现的,若小于等于没有,则大于也不会存在 时间复杂度为O(sqrt(x)) bool is_prime(int num){ if(num<2 阅读全文
posted @ 2022-07-07 15:20 dueyu 阅读(91) 评论(0) 推荐(0)
摘要: 905. 区间选点 该题,翻译一下,就是找到给出的区间中,把有交集的并为一组,已经并一组的集合不能再次合并。 按照贪心去贪,就是将选中的各个区间按照左端点小->大排序,然后标记区间的右端点,当下一个区间的左端点要大于标记的右端点,就要开下一个区间。 对于每个区间的左右端点, 要是该区间的左端点要大于 阅读全文
posted @ 2022-04-07 21:30 dueyu 阅读(54) 评论(0) 推荐(0)
摘要: (该错误都是在做题的过程中不经意犯下,同时也表面了个人在处理问题不到位的情况) 1,在排序题目中,需要按照字典序比较字符串的大小,将strcmp 记成了strcpy,由于strcpy的返回值是该地址的指针char*,但是我不知道为什么样例过了。。。 2,当题目中莫名出现超时,要是当前是cin读入并且 阅读全文
posted @ 2022-02-28 20:59 dueyu 阅读(32) 评论(0) 推荐(0)
摘要: 在谈到离散化之前,可以从简单的前缀和问题上入手,来理解离散化处理问题的精妙 Acwing 795 前缀和 (该题限时2s) 对于小范围的前缀和,可以先开n大小的数组,存储整数序列,其中再开另外一个n大小的数组s,用来存储到达每一个下标前的前缀和。即s [i]=s [i-1]+a [i]; 此后在询问 阅读全文
posted @ 2022-01-20 19:28 dueyu 阅读(329) 评论(0) 推荐(0)
摘要: 差分算法: 给定n长度的数组,有m个请求,每个请求都是在 [l,r](l<=n;r<=n)区间内加上数c,最后输出该数组。 若用暴力法求解,需要循环m个请求,每个请求都是需要遍历数组 (r-l) 遍 ((r-l)<=n)。其中的时间复杂度为O(mn)(数据范围在10e3左右)。而运用差分算法,可以将 阅读全文
posted @ 2022-01-16 12:42 dueyu 阅读(93) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示