您好, 访客   登录/注册

计算机编程中数学算法优化的策略研究

来源:用户上传      作者:殷华英 杨红梅

  摘要:当前,信息技术已经渗透到人们生活的各个方面,各种应用程序已经深刻影响着人们的日常生活。程序由某种编程语言进行编写。很多应用都需要借助数学算法来完成,不同的算法在计算机中运行的效率是不一样的。在某些场合,算法的选择及对应的优化方法尤为重要。该文通过对计算机编程和算法的关系进行分析说明,并给出了对算法进行优化的相关策略。
  关键词:数学算法;计算机编程;优化;建模
  中图分类号:TP311 文献标识码:A
  文章编号:1009-3044(2020)05-0090-02
  开放科学(资源服务)标识码(OSID):
  1 数学算法与计算机编程概述
  数学算法是根据问题数据之间的关系,给出实现问题解决方案的准确描述。在计算机编程中,算法将转换为一条条指令。一个算法的优劣可以通过空间复杂度和时间复杂度来度量。通过在程序中合理使用数学算法,可以提高程序执行效率。一般情况下,数学算法需要以数学程序和方法对工作问题进行分析、设计,使问题解决方法可以得到有效的简化,同时还可以快速获得准确的结果。在目前的计算机编程中,算法和编程语言的结合已经非常紧密,算法也成为计算机科学中一个重要分支。应用数学算法可以和诸如C语言等面向过程的语言结合,也可以和面向对象的语言结合,使语言的适用性更广泛,同时还可以对建模思想进行有效的创新,使建立的模型更加规范,使计算机程序可以在短时间内执行完成,得出正确结果。
  通过数学思想建立数学模型,可以为解决实际问题提供便利,可以使复杂的问题以直观的方式进行展示,简化问题的烦琐性,使抽象的问题变得具体。数学模型可以将实际问题进行有效的转化,对问题进行深入的分析和研究,发现问题蕴含的规律,从而确定合理的解决方案,使问题得到顺利的解决。
  计算机编程就是使用某种语言编写程序代码,使程序实现某种功能。程序在电脑上执行时,将按照设定的流程进行运行。在选择和应用算法时,有着非常具体明确的要求,合理的算法选择,可以保证程序运行的高效、准确、资源占用少。计算机语言是计算机编程的基本实现方式,需要对计算机语言进行深入的分析和研究,才能对基于该语言的算法进行完善[3]。从本质上来说,在编程中使用算法就是数学思维在计算机语言中的具体应用,是电脑对复杂问题进行处理的有效方法。对计算机编程进行算法优化,提高编程的质量,使计算机更有效率地完成任务。
  2 计算机编程中数学算法优化的目的和意义
  同一个问题解决方法可以有多个,对应的算法也会不一样。不同的算法虽然在结果上是相同的,但步骤和过程却有很大差异,有的复杂烦琐,有的简单明了。如计算1到100之间所有数的累加和,依次累加也可得出结果,使用高斯方法,用加法结合律,也能求出结果,很明显后一种方法简单快捷得多。不同算法应用到程序中,程序执行的效率会有差异,这就涉及算法优劣的一个度量。衡量一个算法的优劣有两个指标:时间复杂度和空间复杂度。对于问题规模n,时间复杂度对应的数量级别越低,时间效率就越高。空间复杂度是指算法从运行开始到结束所需的最大存储空间,它与程序本身空间、输人数据占用空间以及辅助变量空间占用有关,其中辅助变量占用空间与算法息息相关。算法的优化是建立在算法分析的基础上,选择合适的算法。
  信息化社会中,计算机程序已经深刻影响了人们生活的各个方面,随着编程方式的不断创新,计算机编程受到更多人的关注和重视。计算机软件编程技术对于问题处理非常关键。数学模型建立后,需要通过程序对模型进行测试和检验,以测试结果为基础对程序代码进行调整和完善,使解决方案更加符合实际需要。当所有测试工作都全部结束后,就可以将优化后方案付诸实施,在实际活动中进行应用,对复杂问题进行解决和处理,得到正确的结果。
  在计算机编程中对数学算法进行优化,寻找解决问题的最佳方式,可以使数学和计算机理论知识完美结合,使理论知识可以发挥最大的作用和价值,使计算机发挥最优性能。应用数学算法对计算机编程优化进行分析,需要借助问题的全面数据,深入多元地分析和研究对象特点,发现内在规律,为问题解决提供帮助,使问题得到有效的处理。
  3 数学算法优化编程策略
  衡量算法性能优劣有多个指标,算法优化是指对算法的有关性能指标进行优化,如时间复杂度、空间复杂度、健壮性等,使其符合最优要求。大数据时代,大量的数据在不同的应用场景中产生,这些数据体量巨大,甚至达到pb级,数据也分散在不同地方,如何基于这些数据产生有效的结果,算法的选择及对应的优化方法尤为重要。对于计算机编程来讲,高质量的算法一直是程序编写者追求的目标。
  3.1 使用合適算法,建立正确数学模型
  一个复杂问题的解决,数学建模是必不可少的。数学建模就是根据实际问题来建立数学模型,对数学模型来进行求解,然后根据结果去解决实际问题。在对计算机编程进行优化时,需要结合数学理论先对问题建立科学、规范的数学模型。数学算法在建立模型的过程中是首要考虑和解决的问题,但是相对比较抽象。数学模型转化为计算机程序代码有时需要借助特殊的数据存储结构,如链表、二叉树、图等。数学建模是算法优化的关键,对于复杂的问题用模型进行定量规范的描述,使其可以转换为方便计算的数学结构。构建规范的数学模型,可以使建立程序流程更加严谨、代码更为精炼。数学建模不仅可以使数学算法与编程语言完美结合,同时,算法的准确性也对程序优化程度产生直接的影响。在求两个正整数的最大公约数时,对应的算法就有很多,可以从较小的数开始,通过反向循环找到最大公约数,也可利用辗转相除法,不同算法,执行效率是明显不同的。
  计算机编程优化的重点在于问题建模。整合计算机和数学的理论知识,可以为建模提供准确的依据,使建模顺利完成。数学模型建立是计算机编程的重要前提,如果想要保证编程优化的合理,就需要准确应用数学算法。数学算法对于编程具有决定性的作用。在分析的过程中,需要对计算机编程影响因素进行分析和考虑,对算法进行全面的优化,可以使计算机以最高的效率完成任务。如在大数据的过滤和推荐应用中,常用的推荐算法有:基于内容的推荐算法、基于协同过滤的推荐算法、基于关联规则的推荐算法、基于用户使用效用的推荐算法、基于知识推理的推荐算法以及它们的组合推荐算法。这些算法都有其特定的应用场景和目标,在使用这些算法建立模型时,要针对解决问题实际情况进行优化。   3.2 合理设计数据结构
  数据结构是具有特定关系的元素集合,是计算机存储和组织数据的方式。算法是基于数据结构的解题步骤,合理的数据结构可以为算法优势发挥产生重要的作用,从根本提升算法性能。此外,还可以结合实际需要对内存空间进行严格的控制,使算法可以在短时间内迅速完成计算。例如,对于稀疏矩阵来说,按照正常的數组进行存储,空间利用将会受到严重的影响,很多空间会被浪费。此时,可以运用三元组或十字链表来压缩高稀疏矩阵存储空间,满足其在内存方面的需要。一旦确定三元组或十字链表表示稀疏矩阵,则基于这些数据结构的稀疏矩阵相关运算如转置、相加等实现的算法也需要和数据结构相一致。再比如,从一个由若干个活动组成的AOE网中查找关键路径,这是影响整个工程进度的重要路径。这时可以借助图这种数据结构,用邻接表来存储数据。基于这种数据结构设计解决问题的算法:根据每个活动的最早开始时间和最迟开始时间来判断该活动是否为关键活动,进而形成关键路径。
  3.3 编程语言运用数学算法的优化方法
  建模及算法,最终要转化为程序代码去由计算机执行。不同语言编写的程序,在编译运行过程中,执行机制都会有差异。在对算法进行优化时,要充分了解使用语言的特点,使用相应的代码实现。如c语言是面向过程的一种语言,作为系统级的一门语言,其应用范围非常广泛,系统级应用,硬件开发、通用软件都可以使用它进行开发。在面向过程程序设计中,大的问题或任务会被分解成一系列小任务,每个小的任务由函数来完成。解决问题依赖于这些众多的函数。一个复杂的算法,也可以由多个函数组成。如何设计这些函数,可以采用自顶向下、逐步求精的程序设计方法,也可以采用自下而上的方法。还有递归函数,这是一种在很多特殊场景使用方便的一种函数,但对于在不同语言的中用法,还是要注意其使用限制。c语言中,指针是一种很常用的类型,它可以直接对内存地址直接操作。算法在优化时,就可以结合该语言的特性,进行对应的逻辑设计和语言实现。
  面向对象程序设计语言(OOP)是现在广泛流行的编程语言,如Java,C++等。与面向过程语言相比,程序由类和对象组成。类是对客观世界的抽象,包含数据和动作两部分,对象由类创建。封装、继承和多态是面向对象程序设计语言的基本特征。在面向对象程序设计时,需要明确设定问题涉及的类类型,对于不同类进行针对性的封装和继承,从而将问题中的对象转变为程序中的对象,使问题描述的概念与结构和问题解决方案的结构保持一致,便于软件的开发和实现。同时对封装处理方式进行应用,使编程效率得到显著的提升,尽快实现编程目标。在面向对象程序设计合理运用建模思想,使程序设计语言优势得以发挥,可以保证程序设计的规范性。算法优化时,要充分发挥不同程序设计语言特点,灵活进行设计,达到最优效果。
  4 结束语
  软件开发需要计算机编程才能得以实现,而数学算法是计算机编程的核心,为软件性能和可靠性提升提供充足的保证,使计算机编程得到有效的创新。在进行计算机编程时,数学算法有时会起到决定作用,也是程序实现功能的重要基础。数学算法与计算机编程具有紧密的联系,随着计算机技术和数学的不断融合创新,数学算法在新技术、新场景中的应用将日益明显。在软件开发过程中,要充分利用数学算法建立模型,并进行针对性的算法优化,从而满足不同任务的需要。
  参考文献:
  [1]姚玉阁,韩晓丽,数学算法对计算机编程优化的研究[Jl.电子技术与软件工程,2018,5(16):208-212.
  [2]欧阳玉峰,周莹莹.数学算法对计算机编程优化的研究[Jl.黑龙江科技信息,2018,9(6):146-148.
  [3]曾镇东,周宇飞,周鹏飞,数学算法对计算机编程优化的分析与研究[Jl电脑知识与技术,2018,12(21):245-246.
  [4]汪海军,王晓宇,朱艳芬.数学算法对计算机编程的优化研究[J].电脑迷,2018,3(6):175-178.
  【通联编辑:李雅琪】
  收稿日期:2019-12-25
  作者简介:殷华英(1976-),男,河北承德人,讲师,硕士,研究方向为服务计算、大数据应用;杨红梅(1977-),女(满族),河北承德人,讲师,硕士,研究方向为数学教育。
转载注明来源:https://www.xzbu.com/8/view-15180347.htm