`
oojdon
  • 浏览: 40627 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

算法之数学

阅读更多

算法的分析是我们计算机科学的一项重要事务,算法的设计也是我们程序中比较重要的一块,算法属于数学领域,相对稳定,我们做应用软件更多的是组合算法,利用算法,抽象算法,软件透视图从算法提升到架构,算法被封装,我们将精力要大部分放在设计软件的灵活性,伸缩性和维护性,以让软件像条狗一样为我们服务


算法是求解一个特定问题的有限个良好定义的相继步骤的指令列表,解决这个特定问题往往可以有多种算法,我们需要分析这些算法,以找到一个高效率的算法,算法的效率衡量标准一般就是时间复杂度和空间复杂度。


算法的复杂性分析其实就是找出一个数学函数f(n),n是输入数据的规模,一般空间复杂度是数据规模的倍数,所以我们说复杂度一般就是指时间复杂度,要分析一个算法的时间复杂度,只要找到这个算法的基本原操作,然后和输入规模n建立函数f(n)就可以了。由于一个算法的执行时间会受到输入数据的某些特性影响,所以需要抛弃这个影响而关注算法的最坏情况和平均情况,最坏是指这个算法执行的最大时间,平均则需要先假定输入数据的一个概率分布,通过概率来计算复杂度,这个要复杂些,对于很多算法,其平均情况的复杂性常与最坏情况的复杂性成比例


得到函数f(n)之后,比如2n*n + n +1,这样表示算法复杂度不是太直观,所以我们只关心这个函数的增长率,这通常由f(n)于某标准函数相比较而的,例如指数函数,对数函数,线性对数函数以及线性函数,二次函数,三次函数这些多项式函数等等,将f(n)与一些标准函数相比较的一种方法我们用大O记号,这个大O的定义如下:


设f(x)与g(x)是定义于R或R的子集上的任意两个函数,f(x)于g(x)同阶则记作 f(x) = O(g(x))

如果存在实数k和正常数C使得对于所有的x>k有| f(x) | <= C | g(x) |


明确了这个过程,我们就可以分析各个算法的复杂度


大O表示法是用于算法的上界,如果要表示算法的下界就要使用符号,表示上下界则需要

   


下面贴出常用排序算法的时间复杂度




 

  • 大小: 110.5 KB
  • 大小: 853 Bytes
  • 大小: 856 Bytes
分享到:
评论

相关推荐

    模型算法之数学建模32种常规方法.zip

    模型算法之数学建模32种常规方法.zip

    贪心算法之数学建模,应用程序详解

    在数学建模和算法设计中,贪心算法是解决问题的常用方法之一。 在贪心算法的应用程序详解中,我们可以通过具体例题来了解贪心算法的使用。例如,在例1中的纸牌分配问题,要求将纸牌均分到每堆数量相同。问题的约束...

    遗传算法的数学基础 书籍 PDF格式

    《遗传算法的数学基础》是一本深入探讨遗传算法理论与应用的书籍,它以其独特的PDF格式,为读者提供了丰富的学习资源。遗传算法是基于生物进化原理的一种全局优化搜索技术,其核心思想来源于自然选择、遗传和突变等...

    数学建模30个常用算法(Python)

    数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模...算法(Python数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)

    数学建模之十大算法 数学建模

    数学建模之十大算法.rar 数学建模之十大算法.rar 数学建模之十大算法.rar

    数学建模算法全收录_现代优化算法_数学建模算法_数学建模_

    在数学建模领域,算法是解决问题的关键工具,尤其在面对复杂问题时,现代优化算法能够帮助我们找到最优解。本文将深入探讨标题所提及的"数学建模算法全收录",涵盖聚类算法和神经网络算法,并结合实例进行解析。 ...

    数学建模算法大全.zip_包括群智能_数学建模算法_数学建模算法大全_神经网络等_贪婪算法

    在数学建模中,算法是解决问题的关键工具,它们能够帮助我们理解和解决复杂的问题。这个"数学建模算法大全.zip"压缩包显然包含了多种算法的详细资料,旨在为学习者提供全面的数学建模方法和应用。以下是这些算法的...

    贪心算法的数学原理(pdf)

    《贪心算法的数学原理》 贪心算法是计算机科学中一种重要的算法设计策略,尤其在优化问题中广泛应用。它的核心思想是在每一步选择局部最优解,期望通过一系列局部最优解来达到全局最优解。然而,贪心算法的数学原理...

    遗传算法数学基础

    本篇将深入探讨遗传算法的数学基础,包括其基本概念、操作步骤以及背后的数学原理。 一、遗传算法概述 遗传算法源于20世纪60年代,由John Holland提出,它属于计算智能领域的一种全局搜索技术。在遗传算法中,问题...

    数学建模算法总结(共799页)

    《数学建模算法总结》是一本详尽的资料,涵盖了799页的丰富内容,旨在为参与数学建模竞赛的学生提供全方位的指导。在数学建模过程中,算法的应用至关重要,因为它们是解决复杂问题的核心工具。以下是根据标题和描述...

    组合数学的算法与程序设计

    没有组合数学的基础,就无法深入研究算法和分析算法。竞赛试题的形式和类型干变万化,但通常蕴涵某个组合数学方面的问题,这些问题很能推动人们去思索,它们的解法也常常是机智和精巧的。因此,对于参与奥林匹克情息...

    matlab经典算法的程序源码 数学建模算法汇总资料.zip

    matlab经典算法的程序源码 数学建模算法汇总资料: matlab经典算法的程序源码 十大算法讲义.pdf 排队模型.pdf 数学建模算法全收录.pdf 数学建模算法大全.pdf 算法大全第01章__线性规划.pdf 算法大全第02章_整数规划....

    32个算法(算法/数学模型基础)

    在IT领域,算法和数学模型是核心技术之一,广泛应用于数据处理、机器学习、优化问题解决等多个方面。"32个算法(算法/数学模型基础)"这个资源显然为初学者提供了一个全面了解和实践这些基础知识的平台。MATLAB作为...

    遗传算法的数学基础

    遗传算法是目前公认的最有效的全局最优化方法之一,本书详细讲解了遗传算法的数学基础,通俗详细!

    数学建模常用的30个常用算法(Python代码).zip

    数学建模常用的30个常用算法(Python代码)数学建模常用的30个常用算法(Python代码)数学建模常用的30个常用算法(Python代码)数学建模常用的30个常用算法(Python代码)数学建模常用的30个常用算法(Python代码)数学建模...

    数学建模十大算法程序详解

    在数学建模中,算法是解决问题的关键工具,它们能够帮助我们高效地处理复杂的问题并找到最优解。以下是对标题和描述中提及的一些重要算法的详细解释: 1. **图论算法**:图论是数学的一个分支,研究的是点与点之间...

    研究生数学建模基础算法资料.zip

    在研究生数学建模竞赛中,掌握基础算法是至关重要的,特别是在华为杯这样的高规格赛事中。本资料包“研究生数学建模基础算法资料.zip”涵盖了多类基础算法,旨在帮助参赛者理解和应用这些方法解决实际问题。以下是...

Global site tag (gtag.js) - Google Analytics