数据结构----效率问题

数据结构----效率问题

一.衡量效率

1.衡量效率的两个维度

1.时间维度:时间复杂度:Time Complexity

时间复杂度是代码总的运行次数(粗糙)

2.空间维度:空间复杂度:Space Complexity

空间复杂度是额外申请的空间

3.注意:

​ 1.复杂度表示方法为 O()

  1. 如果时间和空间不能同时达到一个理想状态,时间优先,用空间换时间 。一些特殊的应用场合会用空间换时间

  2. 一般算循环的时间复杂度,看循环体执行几次就可以

    也可以看代码总执行次数是看总共执行了多少条语句

2.复杂度要求

1.多项级的运算结果,只保留最大项(最高次幂)

2.常系数省舍去

3.如果程序在有限棵树的资源消耗内即可完成(与n无关),那么复杂度为O(1)

3.看下面代码判断时间复杂度

//时间复杂度为 O(n)
for(int i=0;i

6.关于复杂度计算的一些经验性结论

1.单纯的顺序和选择结构,时间复杂度为O(1)

2.一般的一层循环时间复杂度为O(n)

3.两个并列的循环,时间复杂度max(O(m),O(n))

4.一般的两层循环嵌套,时间复杂度是O(n的平方)

5.一般会选择递归、分治、动态规划等方法提升时间效率(空间换时间)

你可能感兴趣的:(数据结构,数据结构)