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);
}