- 博客(7)
- 收藏
- 关注
原创 高精度计算
对于部分编程语言来说,数据是有存储范围的限制的。例如在Python中,数值的上限和下限都是无穷大,而在C++中,int的取值范围是−231231−1long long的取值范围是−263263−1显然,当我们使用C++计算时的结果超出了long long的取值范围时,我们将无法正确计算出想要的结果。因此需要使用高精度计算算法来进行大整数的计算。
2024-07-11 14:57:45
1064
原创 前缀和与差分
目录1. 算法原理2. 前缀和3. 差分1. 算法原理我们高中时学过数列的求和,例如给出一个数列ana_{n}an则该数列的前n项和为Sn=a1+a2+a3+⋯+anS_{n} =a_{1}+a_{2}+a_{3}+\dots+a_{n}Sn=a1+a2+a3+⋯+an因此又有an=Sn−Sn−1a_{n} =S_{n}-S_{n-1}an=Sn−Sn−1而前缀和与差分的算法思想正是与这两个公式类似。2. 前缀和前缀和指的是,对一个数组a[n],初始化其前缀和数组s[n],使得
2024-07-10 15:49:12
874
原创 二分查找与二分答案
要查找有序数组中的某一个元素,我们可以从头到尾遍历数组来枚举答案,令枚举空间为数组中的所有元素,如果当前元素不为所求元素,则从枚举空间中去除这一元素,继续枚举答案,直到找到正确答案为止。如果i < target,则有数组从第1位元素到第i位元素均小于target,一次枚举就可排除一个以上的元素,大大提高了枚举效率。前面提到,在用二分查找算法对枚举空间进行枚举时,需要根据当前枚举元素与目标值的关系来对枚举空间进行取舍。因此,为了使这种优化尽可能地有效,在每次枚举时,都令被枚举元素为当前枚举空间的。
2024-07-09 22:39:40
750
原创 排序算法(4) 归并排序
归并排序使用了的算法思想,即“分而治之”。其原理是:先将初始数组不断折中分割成若干部分,直到无法再分(每部分只剩一个元素),再按分割前的组合排序后重新拼接在一起,最终得到排序好的数组。由于归并排序的算法原理涉及到先分割再合并的回溯操作,因此采用递归的方式来实现该算法。
2024-07-07 15:11:00
1038
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人