4、历史中的经典算法探秘

-1

历史中的经典算法探秘

在算法的世界里,我们常常会接触到各种各样的算法,不同的算法有着不同的特点和应用场景。有时候,一种算法可能不是唯一的或最好的解决方案,我们需要保持开放的思维,去探索新的、可能更好的方法。

1. 算法设计的权衡

在算法设计中,速度和内存需求之间的权衡是一个重要的考虑因素。例如,RPM(Russian Peasant Multiplication)算法虽然速度可能较慢,但它前期需要记忆的内容较少,因为它不需要掌握大部分乘法表。这种为了降低内存需求而牺牲一点速度的做法,在很多算法设计和实现的场景中都很常见。

同时,像RPM这样优秀的算法,还能揭示看似不同的概念之间的联系。比如,二进制展开可能看似只是让晶体管工程师感兴趣的奇技淫巧,对普通人甚至专业程序员来说没什么用。但RPM算法却展示了一个数的二进制展开与一种只需最少乘法表知识就能进行乘法运算的便捷方法之间的深刻联系。这也是我们要不断学习的另一个原因:你永远不知道一些看似无用的知识什么时候会成为强大算法的基础。

2. 欧几里得算法

欧几里得算法是古希腊人留给人类的伟大遗产之一。欧几里得在他的13本《几何原本》中严谨地整理了理论几何知识。他的数学著作大多采用定理/证明的风格,从简单的假设中逻辑地推导出命题。他的一些工作还具有建设性,提供了使用简单工具绘制或创建有用图形的方法。虽然当时“算法”这个词还未被创造出来,但他的建设性方法实际上就是算法,其中一些算法背后的思想至今仍然有用。

2.1 手动执行欧几里得算法

欧几里得最著名的算法就是用于求两个数的最大公约数的算法。以下是手动执行该算法的步骤:
1. 取两个自然数,设为a和

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值