算法导论:算法在计算中的作用

非形式地说,算法就是任何良定义(对于良定义我的理解是给出的定义是清晰,不是模棱两可的)地计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。这样算法就是把输入转换成输出的计算步骤的一个序列。

我们也可以把算法看成是用于求解良说明的计算问题的工具。一般来说,问题陈述说明了期望的输入/输出关系。算法则描述一个特定的计算过程来实现该输入/输出关系。

关于排序问题的形式定义:

输入:n个数的一个序列<a1,a2,...,an>。

输出:输入序列的一个排列<b1,b2,...,bn>,满足b1<=b2<=b3...<=bn。

假如,给定输入序列<31.41.59.26.41.58>,排序算法将返回序列<26,61,41,41,58,59>作为输出。这样的输入序列称为排序问题的一个实例。一般来说,问题实例由计算该问题解所必需的(满足问题陈述中强加的各种约束的)输入组成。

若对每个输入实例,算法都以正确的输出停机,则称该算法是正确的,并称正确的算法解决了给定的计算问题。不正确的算法对某些输入实例可能根本不停机,也可能以不正确的回答停机。

算法可以用英文说明,也可以说明成计算机程序,甚至说明成硬件设计。唯一的要求是这个说明必须精确描述所要遵循的计算过程。

许多有趣的算法问题所共有的两个特征:存在许多候选解(通常我们是寻找真正的解或一个最好的解)。存在实际问题(比如最短路径问题可以解决一些实际的导航问题)。

计算机并不是无限快,存储器也不是免费的。你应该明智地使用这些资源,在时间或空间方面有效的算法将帮助你怎样使用资源。求解相同问题而设计的不同算法在效率方面常常具有显著的差别。

最后,是否具有算法知识与技术的坚实基础是区分真正熟练的程序员与初学者的一个特征。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木羊子羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值