- 博客(4)
- 收藏
- 关注
原创 从0到1|[004]前缀和与
前缀和与差分一、一维前缀和1. 算法介绍前缀和本身严格来说并不能说是一个算法,它更像是一种 工具 ,帮助我们解题。类比的说,前缀和,与我们中学所学知识里数组中的 前n项和Sn 的概念相近。计算前缀和本身并不能帮我们解决问题,而通过计算前缀和却可以帮助我们更快、更好的完成问题的解决。例如,输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。int n,m;scanf("%d%d",&n,&
2022-04-20 22:38:49
221
原创 从0到1|[003]二分法
1. 算法介绍二分查找属于查找的一种,其算法时间复杂度可以达到O(log2 n)。故而是一种简便而快速的查找方法。利用二分查找,我们通常解决的是 单调函数 上的问题。当然,离散的点(数组)也算是其中的范畴。在这里多提一句,单调函数的问题可以利用二分法来解决,但是二分法解决的问题不全是单调函数上的问题。2.算法思想条件在学习算法思想之前,首先要着重强调使用该算法的 条件 :1.该算法所作用的序列必须是有序序列。2.该算法运行一次只能查找一个数值元素,不能查找多个元素。引出
2022-04-16 17:09:14
832
原创 从0到1|[002]归并排序
归并排序1. 算法介绍初步认识举个并不恰当的例子:归并排序的过程其实先将每一个数组元素看成一个group,然后将每一个group进行排序后,再将group两两合并;然后再对新合成的group进行排序(此时每一个group里含有两个元素),再将它进行两两合并。以此类推,直到最后整个数组排序成功。正式介绍归并排序同快速排序一样,也是一种基于 分治 思想的排序,时间复杂度也为O(nlog2n)。与快速排序不同的是,归并排序是一种 稳定 的排序方法。2.算法思想归并排序主要是依据递归来实
2022-04-15 21:37:01
91
原创 从0到1|[001]快速排序
1. 算法介绍快速排序是基于 分治 理念的一种算法,其基于冒泡排序,平均时间复杂度可以达到O(nlog2n)。值得一提的是,该算法并不稳定。并且在极端情况下,时间复杂度可以达到O(n2)。2. 算法思想 在一轮快速排序中,将需要首先在数组中选取一个基准数字x。一般情况下,基准数字可以是左边界,右边界,中值或随机一个数组中的数字。 引用两个指针i和j,分别指向左边界和右边界。 i指针 向右 查询第一个 不小于x 的元素,而j指针则 向左 查询第一个 不大于x的元素,然后将
2022-04-15 18:21:24
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人