• 大O


    首先大O只是对算法复杂度的大概判断,从而对算法的优劣产生一个意识上的判断,并没有对算法实现的内容指导。

    •   大O按由易到难可分为O(1)、O(logan)、O(n)、O(na)、aO (n!),下面简单依个描述下:
      •   O(1):算法的实现和分析元素无关,只要是解决需求就可以。
      • 除了O(1)的级别,其余的都是与分析元素的个数有关,只是与个数的增长相比,实现的算法复杂度更多还是基本持平或更少的问题。
      •   O(logan):算法的实现和分析元素个数成对数级增长,这种级别的实现是很优秀的,当然是在可以实现的情况下。
      •    O(n):算法的实现和要分析的元素个数成正比,元素越多复杂度也会呈正比级别增长。在可以实现的情况下,这种级别实现的算法也是很优秀的。
      •   O(an)(a=2、3、4······ ): 算法的实现和要分析的元素个数成幂数级增长,这种级别的实现是算不上优秀的,因为每增加一个元素,算法的实现复杂度就多了na次,特别是当元素个数已经比较大时,这种级别的算法是会让人想揪掉头发的。
      •   O(n!): 这种级别的算法建议直接放弃,大部分都是拿来说着玩的,不会真正用在实际应用上,因为这种的实现是随个数的增长呈阶乘级别的增长,这种的增长是相当相当恐怖的,基本上分析元素的个数还不是很大时,算法的复杂度都已经是天文数字了。
  • 相关阅读:
    实现CA和证书申请
    1.ssh端口
    1.对称加密6和7的操作
    关于网页访问并发量,统计前十,防火墙
    双指针法
    并查集
    c++常用函数
    vector常用方法
    贪心算法
    字符串类问题
  • 原文地址:https://www.cnblogs.com/itheone/p/12643020.html
Copyright © 2020-2023  润新知