Big O Code Examples

For each of the Cases below, determine the number of steps (iterations) required and also the complexity in O() notation.

void Op(int steps)
{
  for (int i = 0; i < steps; i++)
  {
    // a single operation
  }
}

void Case1(void)
{
  Op(1);
}

void Case2(void)
{
  Op(5);
}

void Case3(void)
{
  for (int i = 0; i < 5; i++)
    Op(1);
}

void Case4(void)
{
  Op(N);
  Op(500);
}

void Case5(void)
{
  for (int i = 0; i < N; i++)
    Op(1);

  Op(N);
}

void Case6(void)
{
  Op(N * N);

  for (int i = 0; i < N; i++)
    Op(5);

  Op(1000);
}

void Case7(void)
{
  for (int i = 0; i < 5; i++)
    Op(N);
}

void Case8(void)
{
  for (int i = 0; i < N; i++)
    Op(N);
}

void Case9(void)
{
  for (int i = 0; i < 10; i++)
    for (int j = 0; j < N; j++)
      Op(N);
}

void Case10(void)
{
  for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
      Op(N);
}

void Case11(void)
{
  for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
    {
      Op(N);
      Op(1);
    }
}

void Case12(void)
{
  if (/* condition */)
    Op(N);
  else
    Op(500);
}

void Case13(void)
{
  if (/* condition */)
    Op(N * N);
  else if (/* condition */)
    Op(N);
}

void Case14(void)
{
  for (int i = 1; i <= N; i *= 2)
    Op(1);
}

void Case14a(void)
{
  for (int i = 1; i <= N; i *= 3)
    Op(1);
}

void Case15(void)
{
  for (int i = 1; i <= N; i *= 2)
    Op(N);
}

void Case16(void)
{
  for (int i = 0; i < N; i++)
    for (int j = 1; j <= N; j *= 2)
      Op(1);
}