Tuesday, March 28,
2023
1
Data Structures & Algorithms
Represented By
Nale Rajesh K.
(Lecturer COE Malegaon (Bk))
Introduction To Algorithms
Tuesday, March 28,
2023
2
How do we solve problems?
We "just do"
Guesswork-and-luck
Trial-and-error
Experience (possibly someone else's)
"Scientifically"
Tuesday, March 28,
2023
4
sterilize(saw,alcohol);
raise_hammer();
lower hammer(fast);
start(saw);
/* etc. etc. */
The Problem-solving Process
Problem
specification
Algorithm
Program
Executable
(solution)
Analysis
Design
Implementation
Compilation
"Doctor, my head hurts"
Patient has elevated
pressure in anterior
parietal lobe.
1. Sterilize cranial saw
2. Anaesthetize patient
3. Remove top of skull
4. Get the big spoon...
5. etc., etc.
01001110101100101010101010010
10101010100110010101010101001
011010011101010101010010010111
010011110101010111110101010001
10100001101...
Tuesday, March 28,
2023
5
The Problem-solving Process
Problem
specification
Algorithm
Program
Executable
(solution)
Analysis
Design
Implementation
Compilation
Tuesday, March 28,
2023
6
A sequence of instructions specifying
the steps required to accomplish
some task
Named after:
Muhammad ibn Musa al-Khwarizmi
of Khowarezm (now Khiva in Uzbekistan)
Algorithm
Tuesday, March 28,
2023
7
A sequence of instructions
describing how to do a task
Algorithm – Working Definition
[As opposed to actually executing
the instructions]
Tuesday, March 28,
2023
8
Algorithm -- Examples
A cooking recipe
Assembly instructions for a model
The rules of how to play a game
VCR instructions
Description of a martial arts
technique
Directions for driving from A to B
A knitting pattern
A car repair manual
Tuesday, March 28,
2023
10
Almond and Honey Slice
1/2 quantity Shotcrust Pastry
185 g unsalted butter
100 g castor sugar
5 tablespoons honey
50 ml cream
50 ml brandy or any other
liqueur or spirit
300 g flaked almonds
Preheat oven for 200° C
Line a 30 cm 20 cm baking
tray with baking paper, and
then with pastry
Bake blind for 20 minutes, then
remove weights and foil
Turn oven up to 220° C.
Bring remaining ingredients to a boil,
stirring.
Spread evenly over pastry.
Bake until topping is bubbling and
has caramelised evenly, about
15 minutes.
Cool before cutting into fingers or
squares.
From: Stephanie Alexander, The
Cook’s Companion, Viking/Penguin,
Ringwood, Victoria, 1996, p. 349.
Tuesday, March 28,
2023
11
Almond and Honey Slice
1/2 quantity Shotcrust Pastry
185 g unsalted butter
100 g castor sugar
5 tablespoons honey
50 ml cream
50 ml brandy or any other
liqueur or spirit
300 g flaked almonds
Preheat oven for 200° C
Line a 30 cm 20 cm baking
tray with baking paper,
and then with pastry
Bake blind for 20 minutes, then
remove weights and foil
Turn oven up to 220° C.
Bring remaining ingredients to a
boil, stirring.
Spread evenly over pastry.
Bake until topping is bubbling and
has caramelised evenly, about
15 minutes.
Cool before cutting into fingers or
squares.
Instructions are given
in the order in which
they are performed
(“executed”)
Tuesday, March 28,
2023
12
Correct Algorithm?
Cut chicken into pieces and
brown the pieces on all
sides in a casserole dish in
hot olive oil.
Remove the chicken and to the
juices in the casserole add
garlic, onions and green
peppers, and sauté until
onion is golden.
Add bay leaf, whole tomatoes,
and chicken broth.
When the broth boils add salt,
saffron and rice.
Arrange chicken on rice, cover
casserole and bake in a
moderate oven (350°F) for
20 minutes or until the rice
is tender.
Add beans and artichokes
during last 10 minutes of
cooking.
Tuesday, March 28,
2023
13
Cut chicken into pieces and
brown the pieces on all
sides in a casserole dish in
hot olive oil.
Remove the chicken and to the
juices in the casserole add
garlic, onions and green
peppers, and sauté until
onion is golden.
Add bay leaf, whole tomatoes,
and chicken broth.
When the broth boils add salt,
saffron and rice.
Arrange chicken on rice, cover
casserole and bake in a
moderate oven (350°F) for
10 minutes.
Add beans and artichokes.
Cover, and bake for another 10
minutes or until rice is
tender.
Correct Algorithm?
Tuesday, March 28,
2023
14
From Algorithms to Programs
Problem
C Program
Algorithm: A sequence
of instructions describing
how to do a task (or
process)
Tuesday, March 28,
2023
15
Components of an Algorithm
Variables and values
Instructions
Sequences
Procedures
Selections
Repetitions
Documentation
Tuesday, March 28,
2023
16
Values
Represent quantities, amounts or
measurements
May be numerical or alphabetical (or
other things)
Often have a unit related to their
purpose
Example:
Recipe ingredients
Tuesday, March 28,
2023
17
Variables
This jar
can contain
10 cookies
50 grams of sugar
3 slices of cake
etc.
Values
Variable
Are containers for values places to store values
Tuesday, March 28,
2023
19
Components of an Algorithm
Values and Variables
Instruction (a.k.a. primitive)
Sequence (of instructions)
Procedure (involving instructions)
Selection (between instructions)
Repetition (of instructions)
Documentation (beside instructions)
Tuesday, March 28,
2023
20
Instructions (Primitives)
Some action that is simple...
...and unambiguous...
...that the system knows about...
...and should be able to actually do
Tuesday, March 28,
2023
21
Instructions – Examples
Take off your shoes
Count to 10
Cut along dotted line
Knit 1
Purl 2
Pull rip-cord firmly
Sift 10 grams of arsenic
Directions to perform
specific actions on values
and variables.
Tuesday, March 28,
2023
23
Instructions (Primitives) --
Recommendations
When writing an algorithm, make
each instruction simple and
unambiguous
Example:
Cut chicken into pieces
and brown the
pieces on all sides in
a casserole dish in
hot olive oil.
Cut chicken into pieces.
Heat olive oil in a
casserole dish.
Brown the chicken
pieces in the
casserole dish.
Tuesday, March 28,
2023
24
Instruction (Primitives)
When writing an algorithm, make
the instructions simple and
unambiguous.
Example:
Cut chicken into pieces
and brown the pieces
on all sides in a
casserole dish in hot
olive oil.
Cut chicken into pieces.
Heat olive oil in a
casserole dish.
Brown the chicken
pieces in the
casserole dish.
A “sequence” of
simple instructions