美文网首页
算法快慢的表示方法-大O表示

算法快慢的表示方法-大O表示

作者: 小猫仔 | 来源:发表于2017-10-15 13:44 被阅读0次

        算法就是完成任务的一组指令,任何代码片段都可以说是算法。当然我们这里讨论的算法指是那些特别有趣的,比如速度特别快,或者能解决复杂问题。

        工作中我们评价算法的合适不合适,该算法花费的时间是考虑的关键因素之一,也是我们研究算法的一个目标之一。我们需要知道该算法最多需要几次操作就可以达到目标,不同算法需要一个统一的表示法,大O就是用来表示有多少操作数的。至于为什么叫大O,可能是最开始做的人喜欢吧,以后就约定俗称的用了。本文从一个简单的例子来阐明这个问题。

例子:我们从100个有序元素列中查找某个元素并返回该元素的位置。元素就是整数吧,比较简单。

       按照普通一个一个的比对,假如我们找的是第99元素,那就需要99次,表示为:O(99),这是一种比较傻的算法。如果我们用 二分法查找,感觉能快不少。实际确实能快不少,我们每操作一次就能减少一半的元素数,比逐个查找比对强多了。

       用二分查找元素数变化:100-50-25-13-7-4-2-1,最多需要7步就可以了

      一般而言,对于包换n个元素的的列表,二分查找最多需要log2N次,普通的简单查找需要n次。这个二分查找的次数,用的是对数,底数为2,二分查找中一般用logn表示,例如 8个元素就是log8=3,1024个元素就是log1024=10;

      大O表示法是一种特殊的表示法,指出了算法的运算速度有多快。上面的例子我们可以知道,简单的逐步查找是O(n),二分查找是O(logn),也就是随着元素数n的增加不同的算法操作数的变化快慢是不同的。

按照操作数从少到多的顺序,列出了5中常见的算法

1、O(logn),对数时间,主要包括二分查找;

2、O(n),    线性时间,就是简单查找。

3、O(n*logn) 快速排序:一种速度较快的排序算法

4、O(n2) 选择排序 :一种速度较慢的排序算法

5、O(n!) 旅行商问题:一种非常慢的算法。

总结:算法的速度并不是时间,而是操作数的增速;谈论算法速度时候,我们说的是随着输入的增加,其运行时间将以什么样的速度增加;

以后章节补充每一种算法的详细内容

相关文章

  • 算法快慢的表示方法-大O表示

    算法就是完成任务的一组指令,任何代码片段都可以说是算法。当然我们这里讨论的算法指是那些特别有趣的,比如速度...

  • 算法效率量化——时间复杂度

    我们通常使用“时间按复杂度”来表示算法的快慢。 时间复杂度常使用O和n表示,如O(n), O(n^2)等。 标记算...

  • 算法复杂度

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

  • 时间复杂度了解一下

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

  • 读书笔记:图解算法

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

  • 算法——大O表示法

    定义:一种特殊的表示法,指出了算法的速度有多快。用于表示运行时间如何随列表增长而增加。 场景:例如,假设列表包含N...

  • 算法实现——二分法查找、选择排序、快速排序、冒泡排序

    上篇文章介绍了大O表示方法和5种常见算法的大O表示时间,本篇文章主要对二分法查找、选择排序、快速排序算法进行了实现...

  • 大O表示法

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

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

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

  • 【从0到1学算法】大O表示法

    一般我们在选择算法时,都是想要选择效率最高的算法。那算法的效率,用什么表示?没错!就是用大O表示法。 PS: 大O...

网友评论

      本文标题:算法快慢的表示方法-大O表示

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