什么是算法以及为什么应该关注算法

什么是算法

常见回答:完成一个任务所需的一系列的步骤称为算法

一个计算机的算法是完成一个任务所需要的一系列步骤,且这些步骤需要足够的精确的描述,以使得计算机能够运行它

计算机算法解决特定的问题,希望获取两个结果,给定一个问题的输入,他总应该能够产生该问题的正确输出结果,并且运行该算法时,应该能够有效的利用计算机资源。

1.1正确性

精确地定义一个正确的解决方案涉及到的内容。

本书关注的是只有确定解的算法,当然有些时候,我们也接受产生误解的算法。只要产生错误的频率可以被控制。加密算法就是个经典的例子。RSA加密系统依赖于确定大数是否为素数,而其出现错误的频率相当的低,对于大多数人而言是安全的。另外一个算法是近似算法,适合于优化问题,即根据一些量化测度来寻找最优解的问题。只要指定了目标因子,我们就可以说,一个近似算法的正确解是任意一个量化测量值在最优解目标因子之内的解决方案。

1.2资源利用

一旦我们知道某算法能够给出一个正确的输出,时间便是我们用来衡量算法效率的主要方式,但是不是唯一的标准。

还需要考虑需要占用多大的计算机内存,占用的其他资源还可能包括:网络通信,随机比特,和磁盘操作等。本书我们将重点研究一个资源--时间。与正确性而言,与特定计算机无关,而算法的实际运行时间还算法本身之外的几个因素有关系,比如:计算机的速度,实现算法的编程语言,将程序转换成计算机能执行的目标代码的编译器或者解释器、程序员的编程技巧等等。

评估一个算法的速度:

首先我们要确定算法的输入规模。其次我们考虑随着输入规模的增加,表示算法运行时间的函数会如何增长---运行时间的增长速率。我们关注增长的量级,实际上我们会忽略系数的影响。

1.3 针对非计算机专业人士的计算机算法

生活无时无刻,周边的生活环境都存在相应的算法,离我们的很近。

1.4 针对计算机专业人士的计算机算法

不仅仅因为算法是计算机的核心,而且算法就计算机的其他技术而言一样重要。即使我们看到了计算机硬件方面的不断改进和发展,但是整个系统的性能不仅仅依靠选择运行较快的硬件,或者高效的操作系统。选择算法也同样重要。

1.5 拓展阅读

描述算法最清楚的,最有用的就是《算法导论》(本书完结之后,将开启的一本算法书),

还有<Nine Algorithms That Changed The Future>即使数学基础薄弱,也能理解那本书的大多数理论。

还有一本书《The Art Of Computer Programming》

此为本书第一章的内容,完结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值