• 大O 表示法


    大O表示法

    指出了算法有多快。例如,假设列表包含n个元素。简
    单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,
    这个运行时间为O(n)。单位秒呢?没有——大O表示法指的并非以秒为单位的速度。大O表示法
    让你能够比较操作数,它指出了算法运行时间的增速。

    大O 表示法指出了最糟情况下的运行时间
    假设你使用简单查找在电话簿中找人。你知道,简单查找的运行时间为O(n),这意味着在最
    糟情况下,必须查看电话簿中的每个条目。如果要查找的是Adit——电话簿中的第一个人,一次
    就能找到,无需查看每个条目。考虑到一次就找到了Adit,请问这种算法的运行时间是O(n)还是
    O(1)呢?
    简单查找的运行时间总是为O(n)。查找Adit时,一次就找到了,这是最佳的情形,但大O表
    示法说的是最糟的情形。因此,你可以说,在最糟情况下,必须查看电话簿中的每个条目,对应
    的运行时间为O(n)。这是一个保证——你知道简单查找的运行时间不可能超过O(n)。

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

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

    小结

     二分查找的速度比简单查找快得多。

     O(log n)比O(n)快。需要搜索的元素越多,前者比后者就快得越多。
     算法运行时间并不以秒为单位。
     算法运行时间是从其增速的角度度量的。
     算法运行时间用大O表示法表示。

  • 相关阅读:
    (2)javascript的基本语法、数据结构、变量
    (1)认识javascript
    CSS 浅析position:relative/absolute定位方式
    jquery实现下拉框多选
    Vue.js not detected
    手机代理调试Charles Proxy和Fiddler
    render函数之jsx应用
    vue组件通信方式(多种方案)
    点击页面空白处地方,隐藏弹窗
    css圆角不圆和1px方案
  • 原文地址:https://www.cnblogs.com/pickKnow/p/10947798.html
Copyright © 2020-2023  润新知