![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++算法
文章平均质量分 95
ckybqszw
这个作者不懒,什么都留下了…
展开
-
前缀和与差分
文章目录一、概念前缀和差分 一、概念 前缀和 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。可以简单理解为“数列的前 nnn 项的和”。—— OI-wiki 他已经说得很完整了,因此我不需要再补充什么。 差分 差分是一种和前缀和相对的策略,可以当做是求和的逆运算。 这种策略的定义是令 bi={ai−ai−1 i∈[2,n]a1 i=1b_i=\begin{cases}a_i-a_{i-1}\,&i\in[2,n]\\a_1\,&i=1\end{cases}bi={ai原创 2021-05-29 15:32:15 · 260 阅读 · 0 评论 -
快速排序、归并排序的原理及应用
一、概念快速排序归并排序二、不同与相同不同相同三、代码实现1.快排 一、概念 快速排序 快速排序(Quicksort)是对冒泡排序算法的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。——百度百科 简单来说,快速排序就是用基数将数组分为两部分,然后在两部分继续找基数原创 2021-05-06 13:26:49 · 282 阅读 · 0 评论 -
递推与递归
一、概念 递推 递推算法是一种用若干步可重复运算来描述复杂问题的方法。递推是序列计算中的一种常用算法。通常是通过计算前面的一些项来得出序列中的指定项的值。——百度百科 其实简单来说,递推就是由最开始的已知状态逐步推向未知(即问题所需的答案)的过程叫做递推。 递归 程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需原创 2021-03-06 15:09:10 · 531 阅读 · 1 评论 -
分治算法
一、概念 当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。——百度百科 当然,不变的,我们用一句话来总结分治:大事化小,小事化了。 分治的表面意思是"分而治之",同样因此分治会将一原创 2021-03-25 14:10:15 · 214 阅读 · 0 评论