Algorithms and Its Comparisons
Algorithms and Its Comparisons
1
Recap
2
Expressing Algorithms
English description
More easily More precise
expressed Pseudocode
High-level programming
language
Analysis of algorithms
4
Analysis of algorithms (Cont !!!)
5
What is the "best" Algorithm
You can considered an algorithm best on the base answers of following questions.
– How fast does it run?
Refer to processing time
– How "complicated" is the algorithm
Time Complexity
Space Complexity
– How well is the algorithm documented
Written pseudo code should be clear , complete and well documented
– Can the machine used have influence on the results
Yes
Some good algorithms can not perform well on slow machines.
6
Important Point to note
7
Example-1.
8
PesuedoCode-1.
main()
{
Int a,b,c;
a=2;
b=3;
c=a+b; Facts:
printf(“%d”, c);
} 1.Three variables ( 6 bytes)
2.Three assignment process
3.One Calculation
4.One output statement
9
PesuedoCode-2.
main()
{
int a,b;
a=2;
b=3;
printf(“%d”, a+b); Facts:
}
1.Two variables ( 4 bytes)
2.Two assignment process
3.One Calculation
4.One output statement
10
PesuedoCode-3.
main()
{
int a,b,c;
scanf(“%d%d”, &a, &b);
c=a+b;
printf(“%d”, c); Facts:
}
1.Three variables ( 6 bytes)
2.One input statement
3.One Assignment
4.One Calculation
5.One output statement
11
PesuedoCode-4.
main()
{
int a,b;
scanf(“%d%d”, &a, &b);
printf(“%d”, a+b);
} Facts:
1.Two variables ( 4 bytes)
2.One input statement
3.One Calculation
4.One output statement
12
Comparison of Pseudo codes
13
Which one Pseudo code is best and how
With respect to space trade of Pseudo code 2 and Pseudo code 4 are candidate for best because in these pseudo codes 2 variables are used.
But when focus on time tradoff/complexity then Pseudo 2 code will best
Why not Pseudo code 4 is best though, you are entering dynamic data (through scanf )
– Because Some instruction access by microprocessor and some are executed by IO circuit of computer system.
– Switching between IO and Microprocessor takes extra time
14
Example-2. Pseudo code about finding swapping the position of
two digits number
main()
{
int N,a,b;
N=54;
a= N/10;
b=N%10
N = b*10+a
Facts:
}
printf(“%d”, N);
1.variables ?
2.input statement ?
3.Calculation ?
4.output statement ?
5.Assignments ?
15
Example-2. Pseudo code about finding swapping the position of
two digits number (Cont!!!)
Facts:
1.variables ? 3 (6 bytes)
2.input statement ? 0
3.Calculation ? 3
4.output statement ? 1
5.Assignments ? 3
16
Example-2. Pseudo code about finding swapping the position of
two digits number (Cont!!!) (Second Pseudo code)
main()
{
int N=54;
N = (N%10)*10 + (N/10)
printf(“%d”, N);
} Facts:
1.variables ?
2.input statement ?
3.Calculation ?
4.output statement ?
5.Assignments ?
17
Example-2. Pseudo code about finding swapping the position of
two digits number (Cont!!!)
Facts:
1.variables ? 1 (2 bytes)
2.input statement ? 0
3.Calculation ? 1
4.output statement ? 1
5.Assignments ? 1
18
Home Work
Write at least three pseudo codes to find the largest of three numbers and analyzed these pseudo codes on base of space
and time trade off factors.
19
Summary
An algorithm or pseudo code will be considered best if it full fill the time and space trade off/ complexities.
Performance of algorithm should be measured and not of implemented program.
During writing algorithm or pseudo code, you have to focus over the extra use of data structure and switching of instructions form
CPU to IO circuits and vise versa
20
In Next Lecturer
In next lecture, we will talk the time and space complexities of algorithms by taking some examples.
21