美文网首页
算法基础之大O表示法

算法基础之大O表示法

作者: 0爱上1 | 来源:发表于2018-02-24 17:01 被阅读23次

定义:

    大O表示法是一种特殊的表示法,其用来指出算法的速度有多块

    注意:大O表示法指出了最糟糕情况下的运行时间

原理对比:

    1:对于普通的简单查找算法,如果有100个元素,最多需要猜测100次,如果有40亿个元素,最多需要40亿次,即最多需要猜测的次数与元素的个数成正比,被称为线性时间,即:O(n)

    2:对于二分查找算法,100个元素最多需要猜测7次,而40亿的元素也仅仅最多需猜测32次,其运行时间为对数时间,即:O(logN)

增速对比:

    下面做一个算法执行时间增速的实验:

    采用简单的查找算法,我们知道,随着所需要查找元素个数的递增,所需要的时间也是呈线性递增的。

    而对于二分查找,其随着查找元素的递增,所需要的查找时间的增速是很缓慢的。(摘自算法简介

1

大O表示法指出了算法有多块,其并没有单位,即并非是指以秒为单位的,大O表示法让你能够比较操作数,用来指出算法运行时间的增速。

表示:

    简单查询算法用大O表示法:O(N)

    二分查找算法用大O表示法:O(logN)

    N表示的是操作数

总结:

    综上所述,我们知道了算法的速度指的并非时间,而是操作数的增速。在谈论算法的速度时,我们说的是随着输入数的增加,其运行时间将会以什么样的速度增加。

旅行商问题:

    在计算机领域中有一个非常著名的旅行商的问题,其计算时间增加的非常快。

    简介:有一位旅行商,需要前往5个城市,同时要保证旅程最短,故可考虑前往这些城市的所有可能顺序,对于每一种顺序,都计算出总旅程,再挑选出旅程最短的路线,5个城市就会有120种不同的排列方式。即5个城市需要120次操作,涉及6个城市时,需要720次操作,7个城市时,需要5040次操作。

    综上涉及到n个城市时,需要执行n!(n的阶乘)次操作才能计算出最终需要的最短旅程路线。用大O表示法为O(N!),即阶乘时间。

如果涉及的城市数量过多,会造成计算出结果时,太阳已经下山了...

相关文章

  • 算法基础之大O表示法

    定义: 大O表示法是一种特殊的表示法,其用来指出算法的速度有多块 注意:大O表示法指出了最糟糕情况下的运行时间...

  • 编程算法之大O表示法

    一. 算法复杂度 算法 (Algorithm),是对特定问题求解步骤的一种描述。解决一个问题往往有不止一种方法,算...

  • 算法(一):二分查找法

    算法(一):二分查找法 算法基础: 一、大O表示法: 指示算法的速度有多快,用于指出随数量的增大,算法的所需步骤增...

  • 读书笔记:图解算法

    读书笔记:图解算法 算法简介 二分查找 O(log n) 大O表示法 大O表示法 让你能够比较操作数,它指出了算法...

  • 算法复杂度

    一、大O表示法 算法的时间复杂度通常用大O符号表述 大O表示法 : ,n为算法所需要执行的操作数 该表示法的操作数...

  • 简单的时间复杂度计算法则

    简单算法时间复杂度计算 大O表示法 像前面用O( )来体现算法时间复杂度的记法,我们称之为大O表示法。 算法复杂度...

  • 大O表示法

    大O表示法 是一种特殊的表示法,指出了算法的速度有多快。大O表示法指出了算法有多快。例如,假设列表包含n 个元素。...

  • 【python】二分法和选择排序法的实现

    一、大O表示法 学算法就绕不开大O表示法,大O法可以告诉我们算法的时间和空间复杂度。 我们先聊点简单的,请你从1数...

  • 算法分析基础

    算法分析基础 大O表示法(Big-O) 一个算法所实施的操作数量或这步骤数可作为独立于具体程序/机器的度量指标 赋...

  • 时间复杂度了解一下

    大O表示法是用来表示算法的性能和复杂度的,也表示算法占用cpu的情况。 通常有以下几种表示: 1、O(1)复杂度 ...

网友评论

      本文标题:算法基础之大O表示法

      本文链接:https://www.haomeiwen.com/subject/nlzqxftx.html