zoukankan      html  css  js  c++  java
  • 算法中的增长率(Rate of Growth)是什么意思?

    一个函数或算法的代码块花费的时间随输入增长的速率称为增长率。

    假设你去买一辆小车和一辆自行车。如果你朋友刚好看到,问你在买什么,我们一般都会说:买小车。因为买小车比买自行车花费高多了。

    【总花费=小车的花费+自行车的花费】

    【总花费≈小车的花费(近似)】

    对于上面的例子,我们用一个函数来表示买车的花费,这个函数忽略低阶指数的项(相对于高阶项,他们的对函数结果的影响很小)。下面这个例子中n4 , 2n2, 100n, 和 500 分别是某个函数对应不同输入的花费,可以把它近似到n4,因为它的增长率最高。

    【n4 + 2n2 + 100n + 500n ≈ n4

    下面是一些我们在程序设计过程中经常会遇到的增长率:

    Time Complexity Name Example
    1 Constant Adding an element to the front of a linked list
    log n Logarithmic Finding an element in a sorted array
    n Linear Finding an element in a unsorted array
    nlog n Linear Logarithmic Sorting n items by ‘Divide and Conquer’
    n2 Quadratic Shortest path between 2 nodes in a graph
    n3 Cubic Matrix Multiplication
    2n Exponential The Towers of Hanoi problem
    Copyright © 2015 programnote
  • 相关阅读:
    Enumerable类
    富客户端
    Entity Framework
    使用C库函数写文件出错
    VC 打开目录 打开上次打开目录
    boost_1_45_0安装
    boost中bimap双向映射的初级学习
    VS2008安装失败
    最近使用文档, 最近保存文档, 最近运行记录
    IE升级为8.0后, VS2008出现Internet Explorer脚本错误对话框
  • 原文地址:https://www.cnblogs.com/programnote/p/4689609.html
Copyright © 2011-2022 走看看