# Tutorial # 1

```University of Bahrain
Information Technology College
Department of Computer Science
ITCS 345 / Tutorial # 1
(Date: Tuesday, February 09, 2016)
Algorithm analysis allows us to compare algorithms. The factors involved in this comparison are
efficiency and running time which are linked to each other. The running time of an algorithm will
typically change depending on the size of input. Algorithms have a best case, average case, and
worse case running time.
Pseudocode
Running time can be estimated in a more general manner by using Pseudocode to represent the
algorithm as a set of fundamental operations which can then be counted. Pseudocode contains all
of the following features:

Conventional loops:
o
o
o
o
o

Method declaration:
o
o
o



If... then... else...
While... do...
Repeat... until...
For... do...
Indentation is used instead of parentheses (brackets)
Method name: Algorithm methodName(args)
Input description: Input...
Output description: Output...
Method calls: var.methodName(args)
Return values: return...
Expressions:
o
o
Assignment: 
Equality comparison: =
In a pseudocode description of an algorithm, each line can be viewed as a certain number of
operations which can be counted and added up to find a total value for the algorithm. Some
examples are shown below:



varNumber  X[1]
(2 operations - 1 array value retrieval, 1 assignment)
For a  1 to n do...
(n operations - any operations within this loop will then be multiplied by n also as they will be
carried out n times)
return varNumber
Trace the following algorithm when:
Ms Sawsan Hussain
Office: S40-1060
Page 1
1. Find the output of the following algorithm , assume n=5
Algorithm S
S  0
For i 1 to n do
S  S+i*i-1
2. Find the output of the following algorithm , assume A = { 2,5,2,7,6}
Algorithm S (A[1..n])
S  0
For i 1 to n do
S S+A[i]
Return S
3. Find the output of the following algorithm , assume A = { 9,2,10,5,11,6,4}
Algorithm S (A[1..n])
Max A[i]
Min A[i]
For i 2 to n do
If A[i] &lt; Min then Min A[i]
Else
If A[i] &gt; Max then Max A[i]
Return Min,Max
Recursive Algorithm
Is an algorithm which calls itself with &quot;smaller (or simpler)&quot; input values, and which obtains the
result for the current input by applying simple operations to the returned value for the smaller (or
simpler) input. More generally if a problem can be solved utilizing solutions to smaller versions
of the same problem, and the smaller versions reduce to easily solvable cases, then one can use a
recursive algorithm to solve that problem.
Trace the following algorithm when:
4. Find the output of the following algorithm , assume n = 3
Algorithm S (n)
If n = 0
Else
Ms Sawsan Hussain
then return 1
return
n * S(n-1)
Office: S40-1060
Page 2
```