![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
第一章 基础算法
文章平均质量分 80
第一章 基础算法
Stellaris_L
Don't mistake a science for a subject.
展开
-
C++基础(2022.9.3)
是一种后进先出 (Last In, First Out) 的容器适配器,仅支持查询或删除最后一个加入的元素(栈顶元素),不支持随机访问,且为了保证数据的严格有序性,不支持迭代器。是一种先进先出 (First In, First Out) 的容器适配器,仅支持查询或删除第一个加入的元素(队首元素),不支持随机访问,且为了保证数据的严格有序性,不支持迭代器。提供的双端队列数据结构,能够提供线性复杂度的插入和删除,以及常数复杂度的随机访问。是有序键值对容器,它的元素的键是唯一的。:按字典序比较两个容器的大小。原创 2022-09-03 10:13:35 · 506 阅读 · 0 评论 -
排序(快速排序、递归排序)
一、排序 这里主要讲两种排序,即快速排序和递归排序。更多排序可以看这篇文章。 快速排序(分治) 解析 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1frC2P3Q-1653190081204)(C:/Users/李俊霖/Desktop/第一章-基础算法/image-20220208174647281.png)] ①确定分界点:x=q[l],q[r],q[l+r>>1]x=q[l],q[r],q[l+r>>1]x=q[l],q[r],q[l+r>原创 2022-01-16 20:16:07 · 69 阅读 · 0 评论 -
二分(整数二分、实数二分)
单调序列或单调函数中的查找方式。(终止条件:l=r)(1)缩小范围:r=mid,l=mid+1,取中间值:mid=(l+r)>>1。(2)缩小范围:l=mid,r=mid+r,取中间值:mid=(l+r+1)>>1。第一种不会取到rrr这个值,第二种不会取到lll。可以用来处理无解的情况。最初的二分区间从[1,n]扩大到[1,n+1]和[0,n],若最后二分终止在这个越界的下标上,则无解。 例题 789. 数的范围 - AcWing题库 实数域二分 解析 注意精度问题 使用循环固定次数的二分方法解决精度问原创 2022-07-03 23:02:04 · 333 阅读 · 0 评论 -
高精度运算
实现高精度加法主要有2点:①怎么将数存下②怎么对数运算 一、怎么存下一个大整数? 答:存在数组当中,并从个位(低位)开始存。例如一个数123456789。(1)为什么要逆序存? 答:每次计算的时候,都有可能遇到进位的问题。如果在最大一位计算时出现了进位的情况,而我们又是使用正序存储,就需要移动数组在开头空出一个位置,这样会十分繁琐。所以直接使用逆序存储就可以十分方便的加上最后一位进位了。 而且这也符合我们人工计算的方向。(后面会解释人工计算) (2)为什么使用动态数组(vector) 答:在动态数组中,可以原创 2022-07-04 09:17:55 · 124 阅读 · 0 评论 -
前缀和&差分
差分是前缀和的逆运算,若A数组的前缀和是B数组,那么A数组就是B数组的差分。所围成的矩形都加上c,所以我们再将多余的部分减去就可以了。 与一维差分相同我们可以将上述操作进行一个转化,对。 同样,二维差分叶可以看成是二维前缀和的逆运算。② 区间前缀和可以快速算出一个区间的值的和。中的随机一个矩形,对其中每一个值加上c。,那么就称数组B称为数组A的差分。 可以将上述操作转化为,在。,对其中每一个值加上c,等同于。的时间从B数组得到A数组。 总结:在A数组的。区间内加上c,等同于。原创 2022-07-13 20:47:54 · 131 阅读 · 0 评论 -
第一章-第五节-双指针
核心作用:将两重循环优化为一重循环,将。 运用某些单调性质,。归并也是用的双指针算法。原创 2022-09-03 15:18:01 · 101 阅读 · 0 评论