zoukankan      html  css  js  c++  java
  • 时间复杂性O(f(n))

    1、基本内容与常见时间复杂度对应的结构

    T(n) =次数表示式,表示的是执行的次数; O(n) 通过T(n)的抓大头等操作后这就是时间复杂度,有O(1)、O(logn)、O(n)、O( nlogn)、O(n^2)、O(n^3)、O(2^n) 这些, 对应的结构是:

    O(1) : 没有for循环体的最上而下的时间复杂性是O(n)

    O(n) : 有一层for循环的

    O(n^a) : 有a层for 循环的

    O(logn) : for (int i=1; i < n; i*=2) {..} T(n)=log2n-1 时间复杂度为O(logn)

    特别地:for (int i=0; i < n; ++i) {

    for (int j=i; j < n; ++j) {...}

    }

    这种只需算最深层执行的次数即可,T(n) = n + (n-1) + (n-2) + (n-3) + ... +2+1 = Sn = [(1+n)n]/2 即时间复杂度为O(n^2), 也是符合a层循环,时间复杂度为O(n^a) 的。

    2、注意点

    ①  注意,1、如果有两个同级的for循环取最大的。 O(n) < O(n^2)

    ② 有if else语句的,取大的

  • 相关阅读:
    SQL Server分页查询的万能存储过程
    前端相关及一些关键单词
    java shiro面试题
    java集合面试题
    芬芬购物系统基础配置2
    芬芬购物系统基础配置
    多线程安全
    多线程入门
    JAVA多线程
    java多线程
  • 原文地址:https://www.cnblogs.com/zjazn/p/15734044.html
Copyright © 2011-2022 走看看