zoukankan      html  css  js  c++  java
  • 时间复杂度

    时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。

    一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。

    我们可以记住一句话,“算法中的基本操作的执行次数,为算法的时间复杂度”。那么,什么是基本操作呢:基本操作就是算法中的每一条语句,我们通常可以只考虑循环内的语句就行了(最内层循环里的语句)。

    OK,在我们的程序中,我们总能找到一个n,这个n是问题的规模,比如循环的次数,数组或者链表结构元素的个数等,而我们的时间复杂度就是关于这个问题规模n的函数T(n),T(n)实际上叫做“渐进时间复杂度”简称为时间复杂度。基本操作的执行次数f(n)。

    现在,我们要把T和f联系起来了:T(n)=O(f(n))。O是数量级的符号。一般而言呢,我们取f(n)中随n增大增长最快的项,然后将该项的系数变为1。

    举个例子来说:f(n)=3n4+2n2+1,那么T(n)=O(f(n))=O(n4)。

    再来回顾一下:算T(n)=>找出基本操作,确定问题的规模n=>计算基本操作执行次数f(n)=>得出T(n)

  • 相关阅读:
    tar.xz文件如何解压
    warnings and errors when executing : make -j4
    ubuntu关机
    Linux系统kernel编译替换升级
    安装linux内核
    二叉树的度数和节点数的关系
    刷题--将搜索二叉树转换成双向链表
    刷题--二叉搜索树与双向链表
    刷题--删除链表中重复的节点
    四舍五入输出
  • 原文地址:https://www.cnblogs.com/helo-blog/p/3754504.html
Copyright © 2011-2022 走看看