算法基础(1)

1算法
非形式地说,算法( algorithn)就是任何良定义的计算过程,该过程取某个值或值的集合作为
入并产生某个值或值的集合作为出,这样算法就是把输人转换成输出的计算步骤的一个
6我们组可以把算法看成是用于求解良说明的计算问题的工具,一般来说,问题陈述说明了
期的输人输出关系,算法则描述一个特定的计算过程来实现该输人/输出关系
如,我们可能需要把一个数列排成非递减序,实际上,这个问题经常出现,并且为引入许
多标准的设计技术和分析工具提供了足够的理由,下面是我们关于排序问题的形式定义
输入:x个数的一个序列(a1,a
输出:输入序列的一个排列(a1a
例如,给定输人序列(31.41,59,26,41,58),排序算法将返回序列(26,31,41,41,5
9)作为输出。这样的输入序列称为排序问题的一个实例(ns
般来说,问题实例由计算
该问题解所必需的(满足问题陈述中强加的各种约束的)输人组成
因为许多程序使用排序作为一个中间步,所以排序是计算机科学中的一个基本操作,因此
已有许多好的排序算法供我们任意使用,对于给定应用,哪个算法最好依赖于以下因素:将被排
序的项数、这些项已被稍微排序的程度、关于项值的可能阻制,计算机的体系结构,以及将使用
的存储设备的种类(主存、磁盘或者磁带)
若对每个输入实例,算法都以正确的输出停机,则称该算法是正确的,并称正确的算法解决
了给定的计算问题。不正确的算法对某些输入实例可能根本不停机,也可能以不正确的回答停机
与人们期望的相反,不正确的算法只要其错误率可控有时可能是有用的,在第31章,当我们研究
求大素数算时,将看到一个具有可控错误率的算法例子。但是通常我们只关心正确的算法
算法可以用英语说明,也可以说明成计算机程序,甚至说明成硬件设计,唯一的要求是这个
说明必须精确描述所要遵循的计算过程
算法解决哪种问题
不已开发算法的一计算间(当看到本书的度时,你可得算法也同样多
的实际应用无处不在,包括以下例子
人类基因工程已经取得重大进展,其目标是识别人类DNA中的所有10万个基因,确定
构成人类DNA的30亿个化学基对的序列,在数据库中存储这类信息并为数据分析开发
工具,这些工作都需要复杂的算法,虽然对涉及的各种问题的求解超出了本书的范围,
是求解这些生物问题的许多方法采用了本书多章内容的思想,从而使得科学家能够有
效地使用资源以完成任务,因为可以从实验技术中提取更多的信息,所以既能节省人和
互联同使得全世界的人都能快速地访问与检索大量信息,借助于一些聪明的算法,互联
又能节省金钱
的同能够管理和处理
这些海量数据,必须使用算法的问题示例包括为数据传轴寻
我好的路由(求解这些问题的技术在第24章给出),使用一个按索引来快速地找到特定[①第一部分基础知识
信息所在的网页(有关技术在第11章和第32章中)
电子商务使得货物与服务能够以电子方式阶谈与交换,并且它依赖于像信用卡号、密码
和银行结单这类个人信息的保密性,电子商务中使用的核心技术包括(第31章中包含的
公钥密码与数字签名,它们以数值算法和数论为基體
制造业和其他商务企业常常需要按最有益的方式来分配稀有资源
家石油公司也许番
望知道在什么地方设置其油井,以便最大化其预期的利润,一位政治候选人也

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值