首页 > 解决方案 > if 在 for 循环中的时间复杂度

问题描述

for(int i = 0; i < Array.length ;i++)
{
   ...
   if(s[i]>s[m]){
      m = i;
   }
}

这个算法的时间复杂度是多少?上)?

标签: time-complexitybig-o

解决方案


for(int i = 0; i < Array.length ;i++)
{
  ...
  if(s[i]>s[m]){
      m = i;
   }
 }

作为n数组的大小,并假设在“...”中完成的计算是恒定的,所以让我们将在“...”上花费的时间标记为c1,然后将时间标记if(s[i]>s[m])为 asc2m = ic3。在最坏的情况下,此代码的时间复杂度为:

n * (c1 + c2 + c3) 

可以用 来表示O(n)


推荐阅读