算法在计算机中的作用

一、算法是什么
算法非形式地说,算法就是任何良定义(没有公理性的矛盾,不会推出与实际情况相悖的情况)的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。这样的算法就是把输入转换成输出的计算步骤的一个序列。

是描述一个特定的计算过程来实现该输入/输出关系。

比如:输入序列为{31,41,59,26,41,58},排序算法将返回序列{26,31,41,41,58,69}作为输出,这样的输入序列称为排序问题的一个实例。因为许多程序都是用排序算法作为一个中间步,所以排序是计算机科学中的一个基本操作,选哪个算法依赖于以下的因素:1)被排序的项目;2)项已被稍微排序的程度;3)项值的可能限制;4)计算机的体系结构;5)存储的种类。

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

二、算法的特征

1、存在很多候选解,但绝大多候选解都没有解决手头的问题。寻找一个真正的解或一个最好的解可能是一个很大的挑战。

2、存在实际应用。

但是算法解决的每个问题并不都有一个容易识别的候选解集。

三、存在的难题

我们关于效率的一般量度是速度,即一个算法花多长时间产生结果。然而有一些算法目前还不知道有效的解法。除此之外,我们可以指望处理器时钟速度能以某个持续的比率增加多年,然而物理的限制对不断提高的时钟速度给出了一个基本路障:一旦时钟速度变得足够快,芯片将会有融化的危险。所以,为了每秒执行更多的计算,芯片将会设置成多核。

四、算法的效率

第二章将将介绍两个用于排序的算法,第一个称为插入算法,排序n项,该算法所需耗费的时间大致等于C1n^2,其中C1是不依赖于n的常数。第二个是归并排序,为了排列n项,所花的大致时间是C2nlgn(其中lgn是指log2(n),C2是不依赖于n的常数),就运行时间来说,归并序列的运行时间比插入序列短。当输入规模大的时候,两种算法的差别就显现出来了。

五、算法与其他技术

目前许多的应用都是需要算法的。例如:考虑一种基于万维网的服务,它确定如何从一个位置旅行到另一个位置。其实依赖于快速的硬件,一个图形用户界面,广域网,还可能依赖于面向对象技术。然而,对某些操作,如寻找路线(可能使用最短路径算法)、描绘地图、插入地址,它还需要其他算法的。

硬件设计需要算法,图形用户界面的设计也需要算法,网络中的路由高度依赖算法......

算法是当代计算机中使用的大多数核心。

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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值