0% found this document useful (0 votes)
0 views43 pages

04 Programming Concepts

The document defines algorithms as ordered sets of executable steps and discusses their representation through programming languages. It covers pseudocode primitives, problem-solving strategies, and various algorithms including searching and sorting techniques. Additionally, it addresses algorithm efficiency, software verification, and presents problem-solving examples.

Uploaded by

arckape
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views43 pages

04 Programming Concepts

The document defines algorithms as ordered sets of executable steps and discusses their representation through programming languages. It covers pseudocode primitives, problem-solving strategies, and various algorithms including searching and sorting techniques. Additionally, it addresses algorithm efficiency, software verification, and presents problem-solving examples.

Uploaded by

arckape
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

NOEMI D.

DIONEDA (FACULTY-IN-CHARGE)

1
Definition of Algorithm

An algorithm is an ordered set


of unambiguous, executable
steps that defines a
terminating process.

2
Algorithm Representation

Requires well-defined primitives


A collection of primitives
constitutes a programming
language.

3
Folding a Bird From a Square
Piece of Paper

4
Origami Primitives

5
Pseudocode Primitives
• Assignment
name = expression

• Example
RemainingFunds = CheckingBalance +
SavingsBalance

6
Pseudocode Primitives

Conditional selection
if (condition):
activity

Example
if (sales have decreased):
lower the price by 5%

7
Pseudocode Primitives

 Conditional selection
if (condition):
activity
else:
activity

 Example
if (year is leap year):
daily total = total / 366
else:
daily total = total / 365

8
Pseudocode Primitives

 Repeated execution
while (condition):
body

 Example
while (tickets remain to be sold):
sell a ticket

9
Pseudocode Primitives

 Indentation shows nested conditions


if (not raining):
if (temperature == hot):
go swimming
else:
play golf
else:
watch television

10
Pseudocode Primitives

• Define a function
def name():

• Example
def ProcessLoan():

• Executing a function
if (. . .):
ProcessLoan()
else:
RejectApplication()

11
The Procedure Greetings in
Pseudocode

12
Pseudocode Primitives

• Using parameters
def Sort(List):
.
.

• Executing Sort on different


lists
Sort(the membership list)

Sort(the wedding guest list)

13
Polya’s Problem Solving Steps

1. Understand the problem.


2. Devise a plan for solving the
problem.
3. Carry out the plan.
4. Evaluate the solution for accuracy
and its potential as a tool for solving
other problems.

14
Polya’s Steps in the Context of
Program Development
1. Understand the problem.
2. Get an idea of how an algorithmic function
might solve the problem.
3. Formulate the algorithm and represent it as
a program.
4. Evaluate the solution for accuracy and its
potential as a tool for solving other
problems.

15
Getting a Foot in the Door

 Try working the problem


backwards
 Solve an easier related problem
Relax some of the problem
constraints
Solve pieces of the problem first
(bottom up methodology)
 Stepwise refinement: Divide the
problem into smaller problems
(top-down methodology)
16
Ages of Children Problem

 Person A is charged with the task of


determining the ages of B’s three children.
 B tells A that the product of the children’s ages is
36.
 A replies that another clue is required.
 B tells A the sum of the children’s ages.
 A replies that another clue is needed.
 B tells A that the oldest child plays the piano.
 A tells B the ages of the three children.
 How old are the three children?

17
Analyzing the Possibilities

18
The Sequential Search Algorithm
Pseudocode
def Search (List, TargetValue):
if (List is empty):
Declare search a failure
else:
Select the first entry in List
to be TestEntry
while (TargetValue > TestEntry
and entries remain):
Select the next entry in
List as TestEntry
if (TargetValue == TestEntry):
Declare search a success
else:
Declare search a failure

19
Components of Repetitive
Control

20
Iterative Structures

 Pretest loop:
while (condition):
body
 Posttest loop:
repeat:
body
until(condition)

21
The While Loop Structure

22
The Repeat Loop Structure

23
Sorting the List Fred, Alex,
Diana, Byron, and Carol
Alphabetically

24
The Insertion Sort Algorithm
expressed in pseudocode
def Sort(List):
N = 2
while (N <= length of List):
Pivot = Nth entry in List
Remove Nth entry leaving a hole in
List
while (there is an Entry above the
hole and Entry > Pivot):
Move Entry down into the hole
leaving
a hole in the list above the
Entry
Move Pivot into the hole
N = N + 1

25
Recursion

The execution of a procedure


leads to another execution of
the procedure.
Multiple activations of the
procedure are formed, all but
one of which are waiting for
other activations to complete.

26
Applying Our Strategy to Search
a List for the Entry John

27
A First Draft of the Binary Search
Technique
if (List is empty):
Report that the search failed
else:
TestEntry = middle entry in the List
if (TargetValue == TestEntry):
Report that the search succeeded
if (TargetValue < TestEntry):
Search the portion of List preceding
TestEntry for
TargetValue, and report the result of
that search
if (TargetValue > TestEntry):
Search the portion of List following
TestEntry for
TargetValue, and report the result of
that search

28
The Binary Search Algorithm in
Pseudocode
def Search(List, TargetValue):
if (List is empty):
Report that the search failed
else:
TestEntry = middle entry in the List
if (TargetValue == TestEntry):
Report that the search succeeded
if (TargetValue < TestEntry):
Sublist = portion of List
preceding TestEntry
Search(Sublist, TargetValue)
if (TargetValue > TestEntry):
Sublist = portion of List
following TestEntry
Search(Sublist, TargetValue)

29
Recursively Searching

30
Second Recursive Search, First
Snapshot

31
Second Recursive Search, Second
Snapshot

32
Algorithm Efficiency

 Measured as number of instructions


executed
 Bigtheta notation: Used to represent
efficiency classes
 Example: Insertion sort is in Θ(n2)
 Best,worst, and average case
analysis

33
Applying the Insertion Sort in a
Worse-case Situation

34
Graph of the Worse-case Analysis
of the Insertion Sort Algorithm

35
Graph of the Worse-case Analysis
of the Binary Search Algorithm

36
Software Verification

Proof of correctness
Assertions
• Preconditions
• Loop invariants
Testing

37
Chain Separating Problem

 A traveler has a gold chain of seven links.


 He must stay at an isolated hotel for seven
nights.
 The rent each night consists of one link from
the chain.
 What is the fewest number of links that must
be cut so that the traveler can pay the hotel
one link of the chain each morning without
paying for lodging in advance?

38
Separating the Chain Using Only
Three Cuts

39
Solving the Problem with Only
One Cut

40
The Assertions Associated with a
Typical While Structure

41
THANK YOU FOR
LISTENING!!!

42
Reference

Brookshear J.G. & Brylow


D. (2015). Computer
Science: An Overview 12th
Edition. ISBN: 973-0-13-
376006-4

43

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy