What is the time complexity of the following algorithm?
int func(int n) {
for (int i = 1; i < = n; i++) {
for (int j = 1; j < = n; j++) {
printf("Hello");
}
}
}
To determine the time complexity of an algorithm, consider the number of iterations of each loop. The time complexity for nested loops is the product of the iterations.
O(n)
O(n²)
O(n³)
O(log n)
Understanding the Algorithm
- The outer loop runs n times.
- The inner loop also runs n times for each iteration of the outer loop.
- The total number of executions of the `printf` statement is \( n \times n = n^2 \).
Thus, the time complexity of the algorithm is O(n²).
Consider the following code:
main() {
int x = 126, y = 105;
{
if (x > y)
x = x - y;
else
y = y - x;
}
while (x != y)
printf("%d", x);
}
Consider the following code:
int a;
int arr[] = {30, 50, 10};
int *ptr = arr[10] + 1;
a = *ptr;
(*ptr)++;
ptr = ptr + 1;
printf("%d", a + arr[1] + *ptr);
Consider the following code:
main() {
int x = 126, y = 105;
{
if (x > y)
x = x - y;
else
y = y - x;
}
while (x != y)
printf("%d", x);
}
Given the following cache parameters:
\[ \begin{array}{|c|c|} \hline \textbf{Tag} & 4 \, \text{bits} \\ \textbf{Index} & 12 \, \text{bits} \\ \textbf{Block Size} & 1 \, \text{byte} \\ \hline \end{array} \]Find the size of the main memory and the size of the cache memory.
Consider the following process information for Shortest Remaining Time First (SRTF) scheduling:
\[ \begin{array}{|c|c|c|} \hline \textbf{Process} & \textbf{Arrival Time (AT)} & \textbf{Burst Time (BT)} \\ \hline P1 & 0 & 10 \\ P2 & 1 & 13 \\ P3 & 2 & 6 \\ P4 & 8 & 9 \\ \hline \end{array} \]Find the turnaround time for each process.