算法在计算中的作用

01 算法

算法就是任何正确定义的计算过程.该过程取某个值或值的集合作为输入并产生输出.

02 算法解决哪些问题

人类基因工程已经取得很大进展, 目标是识别人类DNA中的所有10个基因,确定DNA的30亿个化学基对的序列, 在数据库中存储这类信息并为数据分析开发工具. 这些工作是要用到复杂的算法. 用好的算法可以节省人力,物力,财力.
互联网借助算法可以管理和处理海量的数据.包括数据传输寻找好的路由,像使用google来快速找到特定信息所在的网页.
电子商务使得交易可以用电子方式进行, 核心技术包括公钥密码与数字签名,它们以数值算法和数论为基础.
等等不一一举例了.

03 数据结构

数据结构是一种存储和组织数据的方式, 可以理解成算法是运行在数据结构上的. 数据结构不是对所有的用途都有效, 咱们主要知道几种数据结构的优势和局限.

04 算法上的一些难题

目前一些问题, 还不知道有效的解法. 一些有趣的无有效解法的被称为NP完全的. 首先, 到现在为止没有找到一个NP完全问题的有效算法, 但是也没人能证明出NP完全问题不存在有效算法, 换句话说NP完全问题,是否存在有效算法是未知的(有意思吧). 其次, NP完全问题集有个性质: 若一个NP完全问题存在有效算法,则所有的NP完全问题都存在有效算法(据说谁能找到有效算法,可以获得100万美金奖励).
对于NP完全问题, 可以把时间花在开发一个有效的算法, 这个算法给出一个好的解, 但不一定是最好的可能解.

05 并行性

我们不能指望cpu时钟速度持续增长. 一旦时钟速度变得足够快, 芯片会有熔化的风险.所以,多核cpu出现了. 为了从多核计算机获得最佳性能, 设计算法时必须考虑并行性.

06 作为一种技术的算法

如果计算机是无限快的, 且存储是免费的, 那研究算法就没有意义了.所以设计出好的算法可以在时间和空间方面帮助咱们有效解决问题.

07 效率

对于求解一个问题时, 设计不同的算法在效率方面有显著的差别. 可能比由于硬件和软件造成的差别要重要的多.
举个例子:
插入排序(算法渐进时间为平方级), 归并排序(采用的分治思想, 渐进时间为n*logn级). 我们让插入排序运行在一台较快的计算机上(计算机A), 归并排序运行在一台较慢的计算机上(计算机B). 同时排序1000万个数的数组. 较快的计算机A需要约5.5小时运行完成. 而较慢计算机B则只运行了20分钟完成. 说明使用一个运行时间增长较慢的算法,即使采用较差的编译器, 计算机B还是比计算机A快17倍.如果所要排序的数量级在增加, 归并排序的优势会越来大. 因为对数函数随着自变量增加,值增加的比较慢.

08 总结

总结一下吧, 不学习算法也可以完成一些任务, 但是如果有个好的算法背景,那么你可以做的事情就多得多.

如果喜欢本文请关注.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

算法小筑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值