时间复杂度

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)

原文地址:https://www.cnblogs.com/gaowenxingxing/p/13832122.html