热门标签:代写本科论文 写作发表 工程师论文 代写一篇论文多少钱
当前位置: 代写一篇论文多少钱 > 计算机论文 > 计算机算法的内涵及其学习意义

计算机算法的内涵及其学习意义

时间:2018-12-25 13:31作者:曼切
本文导读:这是一篇关于计算机算法的内涵及其学习意义的文章,通过局部最优解寻求全局最优解的贪婪算法, 通过将一个问题分解为多个子问题的动态规划算法……这一系列算法所蕴含的思想都有着强大的魅力。

  摘    要: 算法的历史悠久, 从最初历算、利息计算逐渐发展到作为数学的算术运算的法则, 算法伴随着数学不断发展, 德国科学家莱布尼茨提出二进制算法, 为现代计算机奠定算法基础。20世纪70年代计算机的出现, 使得算法依据计算机这一工具在生产生活中发挥了巨大的作用。本文就是从个人学习和了解入手, 浅议笔者对计算机算法的认识。

  关键词: 算法; 计算机; 数学;

计算机算法的内涵及其学习意义

  0、前言

  虽然只是在高中信息课程学习了基础的算法知识, 了解了枚举、查找、排序等基本算法, 但却使笔者对计算机算法产生了一定兴趣, 并于课后进行了进一步的学习和了解, 形成了自己的初步认识。

  1、 算法的概念

  从宏观上来说, 一切解决或处理某一问题及事件的方法都是算法。着名畅销书作家赫拉利在《未来简史》中写道, 未来一切都是由算法控制的, 政治是一种算法、科学是一种算法、购物是一种算法、工作是一种算法, 爱情是一种算法, 婚姻是一种算法, 教育是一种算法……在人文学家和社会学家看来, 一切都归于算法。算法是一组有穷规则, 是针对特定问题的运算序列。它有五个特性:有限性、明确性、可行性、有输入、有输出。本文主要讨论的是计算机算法, 是指通过数学的思想和方法, 提供解决问题的思路, 运用编程的手段来完成问题的解决或处理。

  2、 对算法的理解

  算法是计算机软件技术的灵魂, 算法往往采用自然语言、流程图或伪代码方式表示, 以保持移植性, 而不受限于具体语言。因此算法既需要编程语言的有效展现, 又高于编程语言。算法是根本, 编程语言和能力是重要手段。不同的问题适于不同的算法, 同样的问题也可以通过不同的算法来解决, 但却存在优劣之分。关键在于算法的选择, 前提是需要掌握足够的算法知识及技巧, 并能熟练运用。熟练地掌握1~2门编程语言是必要的, 是展现算法的基础。

  2.1、 算法是一种思想

  学习算法, 可以从算法的设计原理中接触到设计者深邃巧妙的思想。比如二分查找算法, 对于包含N个元素的有序列表, 最多只需要log2N次即对数时间就可以找到目的项, 原理非常简单, 取中间项判断, 每次可以排除一半, 但效用却并不小。相比简单查找, 在N取值越大时, 其差距愈明显, 当N为10000时, 二分查找最多只需14次就可以找到目标项。欧几里得算法提出的辗转相除法求最大公约数, 论证了两个正整数a>b, 如果a=bq+r (0<=r<b) , 则a、b的最大公约数即b、r的最大公约数, 将问题进行等价转化, 递归求解, 巧妙有效。

  2.2、 算法要讲效率

  算法的有穷性的特征, 意味着解决问题的计算时间和存储空间总是有限的, 因而算法必然要考虑效率问题。效率的差异实际上往往用实现的时间复杂度来衡量。时间复杂度一般采用大O表示法, 表示遍历程序时间和输入数n的量级关系。以查找算法为例, 一般简单查找为O (n) , 二分查找则需要O (log2n) , 在n数值较小时, 往往看不出效率差距多大, 但随着n较大规模问题时, 差异显着, 二分查找要快得多。这里所指算法的速度并非指运行时间的长短, 而是指随着输入数n的增加, 其程序运行操作数的增速也即运行时间的增速[1]。算法效率, 是解决问题时决定采用何种算法或怎样设计算法的重要度量。

  2.3、 算法和数学密切相关

  算法离不开数学, 从算法的历史来看就是随着数学发展起来的。1936年英国数学家图灵发明了图灵机, 给出了通用计算机的框架结构, 引入了读写与算法和程序语言的理念, 为现代计算机的诞生奠定了理论基础。

  算法的程序实现也需要选择合适的数据结构, 如常见的两种数据结构, 数组和链表, 数组的优势在于快速随机读取, 但只能顺序插入, 而链表则在插入上存在优势, 可以随机插入, 但只能顺序读取, 因此必须熟悉各种数据结构的特点, 依据实际算法的需要, 才能进行合理选择。因此良好的数学基础有助于对算法原理的学习、理解和运用。

  2.4、 算法分类很细, 同时互相之间密切相关

  没有一种通用的算法是完美的, 具体问题需要具体分析, 寻找最合适的算法。因此算法细分为很多领域, 算法不是孤立的, 往往是跨学科的。不仅仅只是数学和计算机, 像生物、电子、通信、密码、人工智能等等各个领域, 都离不开算法。同时很多应用实际上并不只用一种算法, 而是包括了很多算法在内, 比如常见的百度或谷歌搜索引擎, 都是包括了爬虫、索引、排序等多个算法, 区别只是在算法设计的思路、对象、规则等等方面不一样。

  2.5、 算法在不断改进和优化中发展

  从二分查找到插值查找, 将查找点的选择从中值改进为自适应选择, 有效提升了查找效率。从冒泡排序, 每一趟排序时将相邻两个元素进行交换, 根据从大到小或从小到大的顺序, 如此进行n-1次排序即可得到整个数组有序[2];到快速排序, 选择轴值, 一次排序后, 将数据划分为两半, 左边比轴值小, 右边比轴值大, 采用分治策略, 利用递归, 完成对数组的排序, 实现了时间复杂度从O (n2) 到O (nlog2n) 的提升。均是针对现有的问题及需要的结果, 进行算法效率优化提升。

  算法在加密技术中也应用广泛, 随着时代发展技术的进步, 计算机运算能力的提升, 一些原本认为安全的加密算法变得可以被破解, 因此加密算法也一直不断在发展演进, 如对称加密算法的发展, 从DES的56位密钥到3DES的112位或168位密钥再到AES的最高256位密钥, 安全性被不断提高。

  3、 学习算法的意义

  3.1、 算法思想渗透在生活中的方方面面

  人们平时旅游或出差的出行问题就会用到最优或最短路径算法, 不同的选择会造就不同的出行路径。基于时间考量还是成本花费, 是基于舒适度还是想玩更多的景点, 都会影响最优路径的选择。人们常用的网上外卖, 就是网络公司利用自己强大的算法能力, 连接商家和买家并完成食物配送, 提供一条龙服务。通过浏览, 会发现在电脑或手机上经常会看到推荐网页或连接, 这就是网站的推荐系统算法根据人们的浏览习惯, 推测消费者的喜好及需求, 进行相应的广告推广及商品推荐。算法的应用几乎是无处不在, 只不过可能是人们没有察觉或意识到而已。

  3.2、 算法就是生产力, 就是竞争力

  我国正处于现代化的关键时刻, 工业制造面临智能化制造的转变, 工厂自动化、工业机器人的大规模推广应用, 都需要算法来实现生产效率的提升。作为工业大脑核心的算法和软件水平, 关系到企业的生存发展及竞争力, 因而如何提高工业算法和软件水平是今后需要不断发力的关键点。航空航天事业的发展, 同样离不开大规模计算能力和先进的算法, 这是国家综合国力发展的需要。阿尔法狗 (AlphaGo) 是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能程序[3], 其依据的就是启发式搜索算法和大数据, 大大超越了人类的学习极限, 人工智能算法展示了惊人实力。面对大数据时代的到来, 针对海量数据, 如何设计高效的算法获取需要的信息显得尤为重要和迫切。

  3.3、 算法有利于个人的成长

  学习算法能锻炼一个人思考问题、解决问题的能力, 能培养逻辑思维、缜密推理、严谨思考的习惯, 有利于个人的成长。算法应用广泛, 需要广泛的知识面, 并有一定深度了解, 因而会促使个人不断学习, 开拓眼界。

  4、 结语

  虽然笔者知道就目前了解的算法方面知识而言, 只是冰山一角, 管中窥豹而已, 但就是这一有限的方寸之间已经显示了无穷的魅力, 吸引着笔者去揭开它神秘的面纱。通过局部最优解寻求全局最优解的贪婪算法, 通过将一个问题分解为多个子问题的动态规划算法……这一系列算法所蕴含的思想都有着强大的魅力。

  算法的发展日新月异, 推陈出新, 针对新的应用场景, 不断出现新的需求, 也需要相应的合适算法来应对, 这将激励人们不断学习, 不断探索。

  参考文献:

  [1] (美) 巴尔加瓦着AdityaBhargava.《算法图解》.ISBN978-7-115-44763-0 2017.03.
  [2]g15827636417的博客-CSDN博客.《网络 (http://blog.csdn.net/g15827636417) 》.
  [3]惠轶.只赢围棋还不够?他们在让“阿尔法狗”学会赚钱! 2016, 5. (互联网文档资源http://www.jpm.cn/article-8466-1.html) .

联系我们
  • 写作QQ:79211969
  • 发表QQ:78303642
  • 服务电话:18930620780
  • 售后电话:18930493766
  • 邮箱:lunwen021@163.com
范文范例
网站地图 | 网站介绍 | 联系我们 | 服务承诺| 服务报价| 论文要求 | 期刊发表 | 服务流程