欧几里得算法–求最大公约数
内容:gcd(x,y) = gcd(y,x mod y)
证明:假设求 x , y 最大公约数 m,且 x > y,令 a = x / y , b = x % y
则有: x = y*a + b
因为 x 和 y 均能被m整除,易得 b 也能被 m 整除,求x与y的最大公约数就是求y 和 b 的最大公约数,即 gcd(x,y) = gcd(y,x mod y)
分治算法
通过介绍三个实例来理解
- 假设你是农场主,有一小块土地。 你要将这块地均匀地分成方块,且分出的方块要尽可能大。

首先直观的想法就是求边长的最大公约数,那怎么求解呢?如何采用分治法?
将这个大的田地以宽为边划分出正方形,如图:

再将余下的土地按照刚才的方式继续划分,
那么基线条件是直到边的长度恰好是宽的长度的整数倍,此时的正方形是
“适用于这小块地的最大方块,也是适用于整块地的最大方块” - 利用递归求解求和问题
第一步:找出基线条件。最简单的数组什么样呢?请想想这个问题,再接着往下读。如果数 组不包含任何元素或只包含一个元素,计算总和将非常容易。

本文介绍了欧几里得算法用于求最大公约数的原理和证明,阐述了分治算法在解决土地划分问题和数组求和问题中的应用,并详细解析了快速排序的思路、时间复杂度以及基准值选取对性能的影响,强调了快速排序中随机选择基准值的重要性。
最低0.47元/天 解锁文章
764

被折叠的 条评论
为什么被折叠?



