美文网首页
算法基础概述

算法基础概述

作者: LeoFranz | 来源:发表于2019-08-10 12:52 被阅读0次
算法的基本性质

算法是每一步经过精确定义的,能够通过有限步骤计算出确定结果的运算过程,算法有0个或多个输入,取决于算法的问题规模,一定有输出,没有输出的算法没有意义。

算法时间复杂度的估量

考虑三种情况
Tmax(N )、Tmin(N)和Tavg(N )
最好和平均情况下的时间复杂度是认为的添加了部分理想假设计算出来的,根据实践,最有实际价值的是Tmax(N),最差情况。

为了分析方便,我们一般取T(n)=O(f(n)),表示存在某一常数C,使得对所有n≥1,都有T(n)≤C×f(n)。
证明:例:若T(n)=5n3+3n+12,则T(n)=O(n3)。
证:5n3+3n+12≤5n3+3 n3+12 n3=20n3,对所有n≥1成立,取C=20,则有T(n)≤C×n3 <证毕>

复杂渐进态
设T(N)是关于算法A的复杂性函数,当N→∞,(T(N )-T’(N ))/T(N ) → 0,那么T’(N)是T(N)当N→∞时的渐近性态,当N足够大时,我们用T(N)的渐进态函数表示算法A的时间复杂度。

综上,当输入规模足够时候,我们考虑算法的T'(N)阶就行了。

渐进符号O的定义:
f(n)=O(g(n))当且仅当存在正的常数c和n0, 使得对于所有的n>=n0,有f(n)<=cg(n)。
函数f至多是函数g的c倍,除非n<n0 。即是说,当充分大时,g是f的一个上界函数,在相差一个非零常数倍的情况下。
注意:
用来作比较的函数g(n)应该尽量接近所考虑的函数f(n).
3n+2=O(n2) 松散的界限;3n+2=O(n) 较好的界限
f(n)=O(g(n))不能写成g(n)=O(f(n)).
对于函数f(n)和g(n),如果极限limn->∞(f(n)/g(n))存在,则f(n) = O(g(n));
举例:


image.png

符号的Ω定义:
f(n)= Ω(g(n))当且仅当存在正的常数c和n0, 使得对于所有的n>=n0,有f(n)>=cg(n)。
函数f至少是函数g的c倍,除非n<n0 。即是说,当充分大时,g是f的一个下界函数,在相差一个非零常数倍的情况下。

符号的θ定义:
f(n)= θ(g(n))当且仅当存在正的常数c1,c2和n0, 使得对于所有的n>=n0,有c1g(n)<=f(n)<=c2g(n)。
函数f介于函数g的c1、c2倍之间,除非n<n0 。即是说,当充分大时,g既是f的下界,又是f的上界。


image.png

举例子


image.png
性质
image.png

相关文章

  • 算法基础概述

    算法的基本性质 算法是每一步经过精确定义的,能够通过有限步骤计算出确定结果的运算过程,算法有0个或多个输入,取决于...

  • 基础算法概述

    算法是一组(有限个)规则,它为某个特定问题提供了解决问题的运算序列。通俗点,就是计算机解体的过程。 计算机解题的核...

  • 机器学习算法-KNN算法

    机器学习算法-K近邻算法 本文中介绍的机器学习中最基础的一个算法:k-近邻算法,将从如下方面展开: 算法概述 k近...

  • 排序算法

    概述 一般排序算法(以元素比较为基础) => 快速排序、归并排序、插入排序、冒泡排序、堆排序 特殊排序算法 => ...

  • IOS开发_算法

    1、概述; 2、算法的评定; 3、常见的算法; 1、概述; 1.1 定义:算法(Algorithm)是指解...

  • 推荐系统基础

    推荐系统基础 个性化推荐概述 1.1 推荐系统概述 首先,需要申明一点的就是推荐系统!=推荐算法。推荐系统是一套完...

  • 算法一:概述

    算法一:概述 概述 1. 算法 算法algorithm,来自于数学领域。算法的种类也很多,有好有坏。我们用时间复杂...

  • 算法概述

    算法是什么 为什么要学习算法 怎样学习算法 算法是什么 算法是计算机用来解决问题的一系列指令。(1)算法的每一个步...

  • 算法概述

    十种常见算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能超过Q(nlogn)...

  • 算法概述

    # 什么是算法? 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着...

网友评论

      本文标题:算法基础概述

      本文链接:https://www.haomeiwen.com/subject/ldiljctx.html