Easy
▼ calcSum
Algorithm
void calcSum(int[] array)
{
int sum = 0;
for (int i = 0; i < array.length; ++i)
{
sum += array[i];
}
}
Solution
– Analysis: L3: Θ(1), L5: Θ(n), L7: Θ(1)
– Calculation: Θ(1) + Θ(n) * Θ(1) = Θ(n)
▼ calcSumAndProd
Algorithm
void calcSumAndProd(int[] array)
{
int sum = 0;
int prod = 0;
for (int i = 0; i < array.length; ++i)
{
sum += array[i];
}
for (int i = 0; i < array.length; ++i)
{
prod = (prod == 0 ? prod + array[i] : prod * array[i]);
}
}
Solution
– Analysis: L3: Θ(1), L4: Θ(1), L6: Θ(n), L8: Θ(1), L11: Θ(n), L13: Θ(1)
– Calculation: Θ(1) + Θ(1) + Θ(n) * Θ(1) + Θ(n) * Θ(1) = Θ(2n) = Θ(n)
▼ printCartProd
Algorithm
void printCartProd(int[] array)
{
for (int i = 0; i < array.length; ++i)
{
for (int j = 0; j < array.length; ++j)
{
println(array[i] + "," + array[j]);
}
}
}
Solution
– Analysis: L3: Θ(n), L5: Θ(n), L7: Θ(1)
– Calculation: Θ(n) * Θ(n) * Θ(1) = Θ(n2)
Moderate
▼ binarySearch
Algorithm
int binarySearch(int[] sortedArray, int low, int high, int goal)
{
if (low <= high)
{
int mid = low + (high - low) / 2;
if (goal == sortedArray[mid]) {
return mid;
}
else if (goal < sortedArray[mid]) {
return binarySearch(sortedArray, low, mid - 1, goal);
} else {
return binarySearch(sortedArray, mid + 1, high, goal);
}
}
return -1;
}
Solution
Best case: First check is successful. → Goal is in the mid of the tree.
– Calculation: Θ(1)
Worst case: Last check is successful. → Goal is not in the tree at all.
– Calculation: Θ(depth) = Θ(log(n))