zoukankan      html  css  js  c++  java
  • 大O表示法


    定义

    大O表示法是一种特殊的表示法,指出了算法的速度有多快。

    • 并不以秒为单位,而是指算法运行时间随操作数的增速(随着输入的增加,其运行时间将以什么样的速度增加)。
    • 指出了最糟情况下的运行时间。
    • O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快得越多。
    • O(n × 1/2 × n)。 但大O表示法省略诸如1/2这样的常数(有关这方面的完整讨论,请参阅《算法图解》第4章),因此简单地写 作O(n × n)或O(n^2 )。

    常见的大 O 运行时间

    下面按从快到慢的顺序列出了你经常会遇到的5种大O运行时间。

    • O(log n),也叫对数时间,这样的算法包括二分查找。
    • O(n),也叫线性时间,这样的算法包括简单查找。
    • O(n * log n),这样的算法包括 快速排序——一种速度较快的排序算法。
    • O(n^2 ),这样的算法包括 选择排序——一种速度较慢的排序算法。
    • O(n!),这样的算法包括 旅行商问题的解决方案——一种非常慢的算法。

    对数补充

    对数运算是幂运算的逆运算

    log_10 100相当于问“将多少个10相乘 的结果为100”。

    答案是两个:10 × 10 = 100。因此,log_10 100 = 2

    示例

    使用大O表示法(稍后介绍)讨论运行时间时,log指的都是log2

    而使用二分查找时,最多需要检查log n个元素。

    如果列表包含8个元素,你最多需要 检查3个元素,因为log 8 = 3(2^3 = 8)。

    如果列表包含1024个元素,你最多需要检查10个元素, 因为log 1024 = 10(2^10 =1024)。

  • 相关阅读:
    Quartz.Net在windows服务中的使用
    mysql之group by,order by
    mysql之select,insert,delete,update
    win8.1安装VMware Error:This product may not be installed on a comuputer that has Microsoft HyperV installed
    mysql之创建数据库,创建数据表
    深入浅出空间索引:2
    地图点聚合优化方案
    地理围栏算法解析
    GeoHash核心原理解析
    Mongodb地理空间索引
  • 原文地址:https://www.cnblogs.com/huangtq/p/15427875.html
Copyright © 2011-2022 走看看