Time complexity 如何计算大O执行增长率?

Time complexity 如何计算大O执行增长率?,time-complexity,big-o,Time Complexity,Big O,我只是想知道这段代码的大O执行增长率的分解,我试图计算它,但是我得到了错误的for循环。所以我现在完全被困在这个问题上了 void doInter(int setA[], int setB[], int sizeA, int sizeB) { const int MAX = 10; int sizeR; int results [MAX]; // validate sizeA and sizeB if ((sizeA == 0) ||

我只是想知道这段代码的大O执行增长率的分解,我试图计算它,但是我得到了错误的for循环。所以我现在完全被困在这个问题上了

     void doInter(int setA[], int setB[], int sizeA, int sizeB)
  {
      const int MAX = 10;
      int sizeR;
    int results [MAX];

   // validate sizeA and sizeB
   if ((sizeA == 0) || (sizeB == 0))
   {
          cout << "one of the sets is empty\n";
   }

   // save elements common to both sets
   for (int i = sizeR = 0; i <  sizeA; i++ )
   {
       if (member(setB, setA[i],sizeB))
       {
          results[sizeR++] = setA[i];
       }
   }

   {
        cout << results[i] << " ";
   }                                                   
   cout << "}" << endl;
  }



  bool member (int set[], int n, int size)
 {
   for (; size > 0; --size)
   {
       if (set[size-1] == n)
       {                                               
          return true;
       }
   }
  return false;                                       
  }
void doInter(intseta[],intsetb[],intsizea,intsizeb)
{
常数int MAX=10;
内标器;
int结果[MAX];
//验证sizeA和sizeB
如果((sizeA==0)| |(sizeB==0))
{

cout此代码的复杂性为
O(sizeA*sizeB)
。计算相对容易-首先计算内部函数
成员的复杂度
-这是一个单循环,在最坏的情况下,它将执行
sizeB
迭代。现在在外部函数中,您在大小
sizeA
的循环中调用此函数。因此,总体复杂度是两个复杂度对于这两个循环,其余操作相对简单


同样,实现这种复杂性的一个例子也很容易看到——使用两个没有公共元素的数组。

当你要求分析
Big O
时,最好发布算法的伪代码,而不是整个代码。它看起来像O(n^2),因为成员函数被称为sizeA times,每次调用它时,我们都会执行sizeB times,寻找setA中可能的元素,setA也在setB中。我在这里讨论的是最坏的情况。所以我认为O(sizeA*sizeB)应该是这里的答案。但我不知道如何进行更正式的分析。