算法设计与分析基础-算法问题求解基础

本文探讨了算法设计分析过程中的重要步骤,包括理解问题、考虑计算设备性能、选择精确或近似解法。理解问题时需明确算法输入和边界值;了解计算设备性能以决定算法类型,如顺序或并行;在精确解与近似解之间权衡,考虑效率和可行性。算法设计技术作为解决问题的通用方法,对于新问题的解决至关重要。
摘要由CSDN通过智能技术生成

活动地址:CSDN21天学习挑战赛

算法是问题的程序化解决方案

现在列出在算法设计分析过程中经历的一系列典型步骤,并做简要讨论。

 算法的设计和分析过程

理解问题

从实践角度看,在设计算法之前,我们首先需要对给定的问题有完全的理解。

算法的输入,确定了该算法所解问题的一个实例。严格确定算法需要处理的实例的范围是非常重要的。如果不这样做,算法也许能够正确处理大多数输入,但遇到某些“边界值”时就会出错。正确的算法不仅应该能处理大多数常见情况,而且应该能正确处理所有合法的输入。

因此,不要对算法解题的第一步敷衍了事。否则,就要冒不得不返工的风险。

了解计算设备的性能

一旦完全了解了待处理的问题,我们还要搞清楚将要运行算法的计算设备的性能。如今,类冯·诺伊曼的机器仍是计算机的主流,我们使用的大多数算法的代码仍然注定要运行在这种系统上。这个体系结构的根本在于随机存取机。它最主要的假设是:指令逐条运行,每次执行一步操作。相应地,设计在这种机器上运行的算法为顺序算法。

一些更新式的计算机打破了RAM模型的核心假设,它们可以在同一时间执行多条操作,即并行计算。能够利用这种计算能力的算法称为并行算法。尽管如此,在可预见的未来,RAM模型下的算法设计和分析的经典技术仍然是算法学的基础。

在精确解法和近似解法之间做出选择

前者所对应的算法称为精确算法,后者则称为近似算法。为什么有时要选择近似算法呢?首先,有一些重要的问题再很多情况下的确无法求得精确解,例如求平方根、解非线性方程和求定积分。其次,由于某些问题固有的复杂性,用已知的精确算法来解决该问题可能会慢的让人难以忍受。这种情况往往发生在一个问题涉及数量庞大的选择时。最后,一个近似算法可以作为更复杂的精确算法的一部分。

算法的设计技术

算法设计技术(也称为“策略”或者“范例”)是用算法解题的一般性方法,用于解决不同计算领域的多种问题。

第一,在为新问题设计算法时,它们能够给予指导。所以,学习这样的技术正如“授人以鱼,不如授人以渔”。当然,这并不是说,我们遇到的每个问题都必须应用所有的设计技术。但是放在一起,它们便构成一组强大的工具,为我们日后的学习和工作提供便利。

第二,算法是计算机科学的基础。每一门学科都倾向于对其主要研究对象进行分类,计算机科学也不例外。算法设计技术让我们按照内在设计理念对算法进行分类,所以,设计技术使我们能够以一种自然的方式对算法进行分类和研究。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值