《算法图解》(四)

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

欧几里得算法–求最大公约数

内容: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)

分治算法

通过介绍三个实例来理解

  • 假设你是农场主,有一小块土地。 你要将这块地均匀地分成方块,且分出的方块要尽可能大。分田
    首先直观的想法就是求边长的最大公约数,那怎么求解呢?如何采用分治法?
    将这个大的田地以宽为边划分出正方形,如图:
    在这里插入图片描述
    再将余下的土地按照刚才的方式继续划分,在这里插入图片描述
    那么基线条件是直到边的长度恰好是宽的长度的整数倍,此时的正方形是
    “适用于这小块地的最大方块,也是适用于整块地的最大方块”</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值