Question

what is runing time of Algo1 in Θ-notation?

what is runing time of Algo1 in Θ-notation?

0 0
Add a comment Improve this question Transcribed image text
Answer #1

1.The running time of an algorithm is the number of instructions it executes in the RAM(Random access memory) model of computation.

2.Θ-notation is used to give asymptotically tight bounds.Since, it represents the upper and the lower bound of the running time of an algorithm,it is used for analyzing the average case complexity of an algorithm.

Let's take a simple implementation of linear search to understand better.

1. int linearSearch(const vector<int>& array,

2. const int targetValue) {

3.for (int guess = 0; guess < array.size(); guess++) {

4.if (array[guess] == targetValue) {

5.return guess;  

6.}

7.} return -1;  

8.}

Let's denote the size of the array by n. The maximum number of times that the for-loop can run is n, and this worst case occurs when the value being searched for is not present in the array. Each time the for-loop iterates, it has to do several things: compare guess with n; compare array[guess] with targetValue; possibly return the value of guess; and increment guess. Each of these little computations takes a constant amount of time each time it executes. If the for-loop iterates n times, then the time for all n iterations is c1⋅n, where c1 is the sum of the times for the computations in one loop iteration. Now, we cannot say here what the value of c1 is, because it depends on the speed of the computer, the programming language used, the compiler or interpreter that translates the source program into runnable code, and other factors. This code has a little bit of extra overhead, for setting up the for-loop (including initializing guess to 0) and possibly returning -1 at the end. Let's call the time for this overhead c2, which is also a constant. Therefore, the total time for linear search in the worst case is c1⋅n + c2.

As we've argued, the constant factor c1 and the low-order term c2 don't tell us about the rate of growth of the running time. What's significant is that the worst-case running time of linear search grows like the array size n.

The notation we use for this running time is Θ(n) or Theta notation.

When we say that a particular running time is Θ(n), we're saying that once n gets large enough, the running time is at least k1⋅n and at most k2⋅n for some constants k1 and k2. Here's how to think of Θ(n):

figure : 1 Kzon gumIAX timel Kion

For small values of n, we don't care how the running time compares with k1⋅n or k2⋅n. But once n gets large enough—on or to the right of the dashed line—the running time must be sandwiched between k1⋅n and k2⋅n. As long as these constants k1 and k2 exist, we say that the running time is Θ(n).

Figure : 2 Kr.fo) running time

Once n gets large enough, the running time is between k1⋅f(n) and k2⋅f(n).

In practice, we just drop constant factors and low-order terms. Another advantage of using big-Θ notation is that we don't have to worry about which time units we're using. For example, suppose that you calculate that a running time is 6n2 + 100n + 3006 microseconds. Or maybe it's milliseconds. When you use big-Θ notation, you don't say. You also drop the factor 6 and the low-order terms 100n + 300, and you just say that the running time is Θ(n2).

Add a comment
Know the answer?
Add Answer to:
what is runing time of Algo1 in Θ-notation?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT