Dfs

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Q.

1]A]
Space complexity
The better the time complexity of an algorithm is, the faster the algorithm will carry out his work in
practice. Apart from time complexity, its space complexityis also important: This is essentially the
number of memory cells which an algorithm needs. A good algorithm keeps this number as small as
possible, too.
There is often a time-space-tradeoff involved in a problem, that is, it cannot be solved with few
computing time and low memory consumption. One then has to make a compromise and to
exchange computing time for memory consumption or vice versa, depending on which algorithm one
chooses and how one parameterizes it.

Time complexity
How long does this sorting program run? It possibly takes a very long time on large inputs (that is
many strings) until the program has completed its work and gives a sign of life again. Sometimes it
makes sense to be able to estimate the running time before starting a program. Nobody wants to
wait for a sorted phone book for years! Obviously, the running time depends on the number n of the
strings to be sorted. Can we find a formula for the running time which depends on n?
Having a close look at the program we notice that it consists of two nested for-loops. In both loops
the variables run from 0 to n, but the inner variable starts right from where the outer one just stands.
An if with a comparison and some assignments not necessarily executed reside inside the two
loops. A good measure for the running time is the number of executed comparisons. [11] In the first
iteration n comparisons take place, in the second n-1, then n-2, then n-3etc. So 1+2+...+n
comparisons are performed altogether. According to the well known Gaussian sum formula these are
exactly 1/2(n-1)n comparisons.Figure 2.8 illustrates this. The screened area corresponds to the
number of comparisons executed. It apparently corresponds approx. to half of the area of a square
with a side length of n. So it amounts to approx. 1/2n2.

Difference between space & time complexcity


SPACE COMPLEXITY:
The space complexity of an algorithm is the amount of memory it requires to run to completion.
the space needed by a program contains the following components:
1) Instruction space:
-stores the executable version of programs and is generally fixed.

2) Data space:
It contains:
a) Space required by constants and simple variables.Its space is fixed.
b) Space needed by fixed size stucture variables such as array and structures.
c) dynamically allocated space.This space is usually variable.
3) enviorntal stack:
-Needed to stores information required to reinvoke suspended processes or functions.
the following data is saved on the stack
- return address.
-value of all local variables
-value of all formal parameters in the function..
TIME COMPLEXITY:
The time complexity of an algorithm is the amount of time it needs to run to completion. namely
space
To measure the time complexity we can count all operations performed in an algorithm and if we
know the time taken for each operation then we can easily compute the total time taken by the
algorithm.This time varies from system to system.
Our intention is to estimate execution time of an algorithm irrespective of the computer on which it
will be used. Hence identify the key operation and count such operation performed till the program
completes its execution.
The time complexity can be expressd as a function of a key operation performed.
The space and time complexity is usually expressed in the form of function f(n),where n is the input
size for a given instance of a problem being solved.
f(n) helps us to predict the rate of growthof complexity that will increase as size of input to the
problem increases.

You might also like