新闻类网站怎么做,网架公司排名,wordpress解析图片调用的方法,ui设计培训怎么样数据结构----效率问题
一.衡量效率
1.衡量效率的两个维度
1.时间维度#xff1a;时间复杂度#xff1a;Time Complexity
时间复杂度是代码总的运行次数#xff08;粗糙#xff09;
2.空间维度#xff1a;空间复杂度#xff1a;Space Complexity
空间复杂度是额外申…数据结构----效率问题
一.衡量效率
1.衡量效率的两个维度
1.时间维度时间复杂度Time Complexity
时间复杂度是代码总的运行次数粗糙
2.空间维度空间复杂度Space Complexity
空间复杂度是额外申请的空间
3.注意
1.复杂度表示方法为 O() 如果时间和空间不能同时达到一个理想状态时间优先用空间换时间 。一些特殊的应用场合会用空间换时间 一般算循环的时间复杂度看循环体执行几次就可以 也可以看代码总执行次数是看总共执行了多少条语句
2.复杂度要求
1.多项级的运算结果只保留最大项最高次幂
2.常系数省舍去
3.如果程序在有限棵树的资源消耗内即可完成(与n无关)那么复杂度为O(1)
3.看下面代码判断时间复杂度
//时间复杂度为 O(n)
for(int i0;in;i){coutiendl;
}//时间复杂度为 O(log2的n次方)
for(int i1;in;i*2){coutiendl;
}//时间复杂度为 O(n的平方)
for(int i1;in;i){for(int j1;ji;j){couti jendl;}
}//时间复杂度为 O(n的立方)
for(int i1;in;i){for(int j1;ji;j){for(int k1;kj;k){couti jendl;}}
}6.关于复杂度计算的一些经验性结论
1.单纯的顺序和选择结构时间复杂度为O(1)
2.一般的一层循环时间复杂度为O(n)
3.两个并列的循环时间复杂度max(O(m),O(n))
4.一般的两层循环嵌套时间复杂度是O(n的平方)
5.一般会选择递归、分治、动态规划等方法提升时间效率空间换时间