Question: Identify the big-O time complexity of each of the following functions: void f1(int n) { } for (int i=0; i<(3*n+n); ++i) { cout << i << endl; } } for (int i=0; i< (10*n); ++i) { cout << i << endl; void f2 (int n) { if(n==0) { return; } f2 (n-1); f2 (n-3); void f3 (int n) { for (int i=0; i
Question: Identify the big-O time complexity of each of the following functions: void f1(int n) { } for (int i=0; i<(3*n+n); ++i) { cout << i << endl; } } for (int i=0; i< (10*n); ++i) { cout << i << endl; void f2 (int n) { if(n==0) { return; } f2 (n-1); f2 (n-3); void f3 (int n) { for (int i=0; i
Related questions
Question
100%
Identify the big-O time for these void functions
![### Question:
Identify the big-O time complexity of each of the following functions:
#### Function f1:
```cpp
void f1(int n) {
for(int i=0; i<(3*n+n); ++i) {
cout << i << endl;
}
for(int i=0; i<(10*n); ++i) {
cout << i << endl;
}
}
```
- **Explanation:**
- The first loop runs for `4n` times (`3n + n`), and the second loop runs for `10n` times.
- Overall, this results in a time complexity of **O(n)**.
#### Function f2:
```cpp
void f2(int n) {
if(n==0) { return; }
f2(n-1);
f2(n-3);
}
```
- **Explanation:**
- This function makes two recursive calls: one reducing `n` by 1 and the other by 3.
- The recurrence relation is **T(n) = T(n-1) + T(n-3) + O(1)**.
- The time complexity is approximately **O(2^n/3)**, which simplifies to **O(2^(n/3))** or approximately **O(2^n)** in complexity analysis terms.
#### Function f3:
```cpp
void f3(int n) {
for(int i=0; i<n; ++i) {
for(int j=0; j<n; ++j) {
for(int k=0; k<n; ++k) {
cout << i << endl;
}
}
}
}
```
- **Explanation:**
- This function contains three nested loops, each running `n` times.
- Therefore, the total number of operations is **n * n * n = n^3**.
- The time complexity is **O(n^3)**.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fee344c66-7efa-4594-9121-d91385396bb3%2F48d0bad9-f338-4d57-8de5-c771a79b2172%2Fatdfhh_processed.png&w=3840&q=75)
Transcribed Image Text:### Question:
Identify the big-O time complexity of each of the following functions:
#### Function f1:
```cpp
void f1(int n) {
for(int i=0; i<(3*n+n); ++i) {
cout << i << endl;
}
for(int i=0; i<(10*n); ++i) {
cout << i << endl;
}
}
```
- **Explanation:**
- The first loop runs for `4n` times (`3n + n`), and the second loop runs for `10n` times.
- Overall, this results in a time complexity of **O(n)**.
#### Function f2:
```cpp
void f2(int n) {
if(n==0) { return; }
f2(n-1);
f2(n-3);
}
```
- **Explanation:**
- This function makes two recursive calls: one reducing `n` by 1 and the other by 3.
- The recurrence relation is **T(n) = T(n-1) + T(n-3) + O(1)**.
- The time complexity is approximately **O(2^n/3)**, which simplifies to **O(2^(n/3))** or approximately **O(2^n)** in complexity analysis terms.
#### Function f3:
```cpp
void f3(int n) {
for(int i=0; i<n; ++i) {
for(int j=0; j<n; ++j) {
for(int k=0; k<n; ++k) {
cout << i << endl;
}
}
}
}
```
- **Explanation:**
- This function contains three nested loops, each running `n` times.
- Therefore, the total number of operations is **n * n * n = n^3**.
- The time complexity is **O(n^3)**.
Expert Solution
![](/static/compass_v2/shared-icons/check-mark.png)
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 5 steps
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)