zoukankan      html  css  js  c++  java
  • 时间复杂度

    big O notation

    算法的时间复杂度简单来说就是程序执行的次数
    就是看for循环

    一般来说:
    一个for循环的时间复杂度是O(N)
    两个for循环嵌套的时间复杂度是(O(N^2)),看几层嵌套吧
    特别注意,两个for循环并列执行的时间复杂度是O(2N),一般常数项忽略不计,也就是O(N)

    还是需要写时间复杂度最低的代码

    面试手撕代码4件套

    1.和面试官讨论一下代码
    2.想出所有的解决方案,同时比较这些代码的空间和时间复杂度
    3.找出最优解决方案
    4.最后再写

    递归的时间复杂度

    首先找到递归树

    比如拿fib数列进行分析
    0112358。。。
    F(N)=F(N-1)+F(N-2)

    主定理是个啥?

    二分法查找:每次一次一半因此时间复杂度是二分法查找的时间复杂度就是log(n)

    二叉树的遍历每个节点会访问一次且仅访问一次,因此的时间复杂度是O(N)

    归并排序也是nlog(n)

    二叉树的前序中序后序遍历的时间复杂度就是O(N)
    同理图,节点仅访问一次
    深度优先和广度优先都是O(N)

    以上的时间复杂度都是O(N)

  • 相关阅读:
    java泛型介绍
    JavaWeb---总结(十九)Session机制
    ServiceWorker入门介绍一
    Ehcache入门介绍一
    Hadoop入门介绍一
    给安卓端调用的短信发送接口demo
    Java开发需要注意的流程
    一些题
    省选模拟3
    省选模拟2
  • 原文地址:https://www.cnblogs.com/gaowenxingxing/p/13832122.html
Copyright © 2011-2022 走看看