SlideShare a Scribd company logo
1
Algorithms
CS 202
Epp section ???
Aaron Bloomfield
2
What is an algorithm?
An algorithm is “a finite set of precise
instructions for performing a computation or for
solving a problem”
 A program is one type of algorithm
All programs are algorithms
Not all algorithms are programs!
 Directions to somebody’s house is an algorithm
 A recipe for cooking a cake is an algorithm
 The steps to compute the cosine of 90° is an
algorithm
3
Some algorithms are harder than
others
Some algorithms are easy
 Finding the largest (or smallest) value in a list
 Finding a specific value in a list
Some algorithms are a bit harder
 Sorting a list
Some algorithms are very hard
 Finding the shortest path between Miami and Seattle
Some algorithms are essentially impossible
 Factoring large composite numbers
In section 2.2, we’ll see how to rate how “hard”
algorithms are
4
Algorithm 1: Maximum element
Given a list, how do we find the maximum
element in the list?
To express the algorithm, we’ll use
pseudocode
 Pseudocode is kinda like a programming
language, but not really
5
Algorithm 1: Maximum element
Algorithm for finding the maximum
element in a list:
procedure max (a1, a2, …, an: integers)
max := a1
for i := 2 to n
if max < ai then max := ai
{max is the largest element}
6
procedure max (a1, a2, …, an: integers)
max := a1
for i := 2 to n
if max < ai then max := ai
max := a1
for i := 2 to n
if max < ai then max := ai
Algorithm 1: Maximum element
4 1 7 0 5 2 9 3 6 8
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
max
i 2
3
4
5
6
7
8
9
10
4
7
9
7
Maximum element running time
How long does this take?
If the list has n elements, worst case
scenario is that it takes n “steps”
 Here, a step is considered a single step
through the list
8
Properties of algorithms
Algorithms generally share a set of properties:
 Input: what the algorithm takes in as input
 Output: what the algorithm produces as output
 Definiteness: the steps are defined precisely
 Correctness: should produce the correct output
 Finiteness: the steps required should be finite
 Effectiveness: each step must be able to be
performed in a finite amount of time
 Generality: the algorithm should be applicable to all
problems of a similar form
9
Searching algorithms
Given a list, find a specific element in the
list
We will see two types
 Linear search
a.k.a. sequential search
 Binary search
10
Algorithm 2: Linear search
Given a list, find a specific element in the list
 List does NOT have to be sorted!
procedure linear_search (x: integer; a1, a2, …, an:
integers)
i := 1
while ( i ≤ n and x ≠ ai )
i := i + 1
if i ≤ n then location := i
else location := 0
{location is the subscript of the term that equals x, or it
is 0 if x is not found}
11
procedure linear_search (x: integer; a1, a2, …, an: integers)
i := 1
while ( i ≤ n and x ≠ ai )
i := i + 1
if i ≤ n then location := i
else location := 0
i := 1
while ( i ≤ n and x ≠ ai )
i := i + 1
if i ≤ n then location := i
else location := 0
Algorithm 2: Linear search, take 1
4 1 7 0 5 2 9 3 6 8
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
i 2
3
4
5
6
7
8
1
x 3
location 8
12
procedure linear_search (x: integer; a1, a2, …, an: integers)
i := 1
while ( i ≤ n and x ≠ ai )
i := i + 1
if i ≤ n then location := i
else location := 0
i := 1
while ( i ≤ n and x ≠ ai )
i := i + 1
if i ≤ n then location := i
else location := 0
Algorithm 2: Linear search, take 2
4 1 7 0 5 2 9 3 6 8
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
i 2
3
4
5
6
7
8
9
10
1
x 11
location 0
11
13
Linear search running time
How long does this take?
If the list has n elements, worst case
scenario is that it takes n “steps”
 Here, a step is considered a single step
through the list
14
Algorithm 3: Binary search
Given a list, find a specific element in the list
 List MUST be sorted!
Each time it iterates through, it cuts the list in half
procedure binary_search (x: integer; a1, a2, …, an: increasing integers)
i := 1 { i is left endpoint of search interval }
j := n { j is right endpoint of search interval }
while i < j
begin
m := (i+j)/2 { m is the point in the middle }
if x > am then i := m+1
else j := m
end
if x = ai then location := i
else location := 0
{location is the subscript of the term that equals x, or it is 0 if x is not found}
15
Algorithm 3: Binary search, take 1
2 4 6 8 10 12 14 16 18 20
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
i j
m
i := 1
j := n
procedure binary_search (x: integer; a1, a2, …, an: increasing integers)
while i < j
begin
m := (i+j)/2
if x > am then i := m+1
else j := m
end
if x = ai then location := i
else location := 0
i := 1
j := n
while i < j
begin
m := (i+j)/2
if x > am then i := m+1
else j := m
end
if x = ai then location := i
1
x 14
10
5
6 8 8
7 7
6
7
location 7
16
Algorithm 3: Binary search, take 2
2 4 6 8 10 12 14 16 18 20
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
i j
m
i := 1
j := n
procedure binary_search (x: integer; a1, a2, …, an: increasing integers)
while i < j
begin
m := (i+j)/2
if x > am then i := m+1
else j := m
end
if x = ai then location := i
else location := 0
i := 1
j := n
while i < j
begin
m := (i+j)/2
if x > am then i := m+1
else j := m
end
if x = ai then location := I
else location := 0
1
x 15
10
5
6 8 8
7
location 0
8
17
Algorithm 3: Binary search
A somewhat alternative view of what a
binary search does…
18
Binary search running time
How long does this take (worst case)?
If the list has 8 elements
 It takes 3 steps
If the list has 16 elements
 It takes 4 steps
If the list has 64 elements
 It takes 6 steps
If the list has n elements
 It takes log2 n steps
19
Sorting algorithms
Given a list, put it into some order
 Numerical, lexicographic, etc.
We will see two types
 Bubble sort
 Insertion sort
20
Algorithm 4: Bubble sort
One of the most simple sorting algorithms
 Also one of the least efficient
It takes successive elements and “bubbles” them
up the list
procedure bubble_sort (a1, a2, …, an)
for i := 1 to n-1
for j := 1 to n-i
if aj > aj+1
then interchange aj and aj+1
{ a1, …, an are in increasing order }
22
Algorithm 4: Bubble sort
An example using physical objects…
23
Bubble sort running time
Bubble sort algorithm:
for i := 1 to n-1
for j := 1 to n-i
if aj > aj+1
then interchange aj and aj+1
Outer for loop does n-1 iterations
Inner for loop does
 n-1 iterations the first time
 n-2 iterations the second time
 …
 1 iteration the last time
Total: (n-1) + (n-2) + (n-3) + … + 2 + 1 = (n2-n)/2
 We can say that’s “about” n2 time
25
Algorithm 5: Insertion sort
Another simple (and inefficient) algorithm
It starts with a list with one element, and inserts new elements into
their proper place in the sorted part of the list
procedure insertion_sort (a1, a2, …, an)
for j := 2 to n
begin
i := 1
while aj > ai
i := i +1
m := aj
for k := 0 to j-i-1
aj-k := aj-k-1
ai := m
end { a1, a2, …, an are sorted }
take successive elements in the list
find where that element should be
in the sorted portion of the list
move all elements in the sorted
portion of the list that are greater
than the current element up by one
put the current element into it’s proper place in the sorted portion of the list
26
Insertion sort running time
for j := 2 to n begin
i := 1
while aj > ai
i := i +1
m := aj
for k := 0 to j-i-1
aj-k := aj-k-1
ai := m
end { a1, a2, …, an are sorted }
Outer for loop runs n-1 times
In the inner for loop:
 Worst case is when the while keeps i at 1, and the for loop runs lots of
times
 If i is 1, the inner for loop runs 1 time (k goes from 0 to 0) on the first
iteration, 1 time on the second, up to n-2 times on the last iteration
Total is 1 + 2 + … + n-2 = (n-1)(n-2)/2
 We can say that’s “about” n2 time
27
Comparison of running times
Searches
 Linear: n steps
 Binary: log2 n steps
 Binary search is about as fast as you can get
Sorts
 Bubble: n2 steps
 Insertion: n2 steps
 There are other, more efficient, sorting techniques
In principle, the fastest are heap sort, quick sort, and merge
sort
These each take take n * log2 n steps
In practice, quick sort is the fastest, followed by merge sort

More Related Content

Similar to Algorithm, Pseudocode and Flowcharting in C++ (20)

Algorithms
AlgorithmsAlgorithms
Algorithms
WaqarzadAa
 
Chapter3.pptx
Chapter3.pptxChapter3.pptx
Chapter3.pptx
sneha510051
 
DS - Unit 2 FINAL (2).pptx
DS - Unit 2 FINAL (2).pptxDS - Unit 2 FINAL (2).pptx
DS - Unit 2 FINAL (2).pptx
prakashvs7
 
Data Structures_ Sorting & Searching
Data Structures_ Sorting & SearchingData Structures_ Sorting & Searching
Data Structures_ Sorting & Searching
ThenmozhiK5
 
Lecture-1-Algorithms.pptx
Lecture-1-Algorithms.pptxLecture-1-Algorithms.pptx
Lecture-1-Algorithms.pptx
xalahama3
 
CSI_06.pptx
CSI_06.pptxCSI_06.pptx
CSI_06.pptx
MinhNguyn859990
 
Chapter 2 Sorting and Searching .pptx.soft
Chapter 2 Sorting and Searching  .pptx.softChapter 2 Sorting and Searching  .pptx.soft
Chapter 2 Sorting and Searching .pptx.soft
kuruabeje7
 
Chapter 2 Sorting and Searching .pptx.soft
Chapter 2 Sorting and Searching  .pptx.softChapter 2 Sorting and Searching  .pptx.soft
Chapter 2 Sorting and Searching .pptx.soft
kuruabeje7
 
Lecture 7_introduction_algorithms.pptx
Lecture 7_introduction_algorithms.pptxLecture 7_introduction_algorithms.pptx
Lecture 7_introduction_algorithms.pptx
ngBinh3
 
ds 2Arrays.ppt
ds 2Arrays.pptds 2Arrays.ppt
ds 2Arrays.ppt
AlliVinay1
 
Chapter-2.pptx
Chapter-2.pptxChapter-2.pptx
Chapter-2.pptx
selemonGamo
 
L01 intro-daa - ppt1
L01 intro-daa - ppt1L01 intro-daa - ppt1
L01 intro-daa - ppt1
sankaran L
 
Data Structures & Algorithms - Lecture 1
Data Structures & Algorithms - Lecture 1Data Structures & Algorithms - Lecture 1
Data Structures & Algorithms - Lecture 1
Faculty of Computers and Informatics, Suez Canal University, Ismailia, Egypt
 
Data structures and algorithms
Data structures and algorithmsData structures and algorithms
Data structures and algorithms
Adriano Patrick Cunha
 
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptxa581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
christinamary2620
 
Algorithm & data structures lec4&5
Algorithm & data structures lec4&5Algorithm & data structures lec4&5
Algorithm & data structures lec4&5
Abdul Khan
 
Data Structure and Algorithms Arrays
Data Structure and Algorithms ArraysData Structure and Algorithms Arrays
Data Structure and Algorithms Arrays
ManishPrajapati78
 
AA Lecture 01 of my lecture os ghhhggh.ppt
AA Lecture 01 of my lecture os ghhhggh.pptAA Lecture 01 of my lecture os ghhhggh.ppt
AA Lecture 01 of my lecture os ghhhggh.ppt
maryamzahra3366
 
ADSA orientation.pptx
ADSA orientation.pptxADSA orientation.pptx
ADSA orientation.pptx
Kiran Babar
 
Algorithms the fundamentals, For computer Science.ppt
Algorithms the fundamentals, For computer Science.pptAlgorithms the fundamentals, For computer Science.ppt
Algorithms the fundamentals, For computer Science.ppt
CarloCimacio
 
DS - Unit 2 FINAL (2).pptx
DS - Unit 2 FINAL (2).pptxDS - Unit 2 FINAL (2).pptx
DS - Unit 2 FINAL (2).pptx
prakashvs7
 
Data Structures_ Sorting & Searching
Data Structures_ Sorting & SearchingData Structures_ Sorting & Searching
Data Structures_ Sorting & Searching
ThenmozhiK5
 
Lecture-1-Algorithms.pptx
Lecture-1-Algorithms.pptxLecture-1-Algorithms.pptx
Lecture-1-Algorithms.pptx
xalahama3
 
Chapter 2 Sorting and Searching .pptx.soft
Chapter 2 Sorting and Searching  .pptx.softChapter 2 Sorting and Searching  .pptx.soft
Chapter 2 Sorting and Searching .pptx.soft
kuruabeje7
 
Chapter 2 Sorting and Searching .pptx.soft
Chapter 2 Sorting and Searching  .pptx.softChapter 2 Sorting and Searching  .pptx.soft
Chapter 2 Sorting and Searching .pptx.soft
kuruabeje7
 
Lecture 7_introduction_algorithms.pptx
Lecture 7_introduction_algorithms.pptxLecture 7_introduction_algorithms.pptx
Lecture 7_introduction_algorithms.pptx
ngBinh3
 
ds 2Arrays.ppt
ds 2Arrays.pptds 2Arrays.ppt
ds 2Arrays.ppt
AlliVinay1
 
L01 intro-daa - ppt1
L01 intro-daa - ppt1L01 intro-daa - ppt1
L01 intro-daa - ppt1
sankaran L
 
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptxa581a6a2cb5778045788f0b1d7da1c0236f.pptx
a581a6a2cb5778045788f0b1d7da1c0236f.pptx
christinamary2620
 
Algorithm & data structures lec4&5
Algorithm & data structures lec4&5Algorithm & data structures lec4&5
Algorithm & data structures lec4&5
Abdul Khan
 
Data Structure and Algorithms Arrays
Data Structure and Algorithms ArraysData Structure and Algorithms Arrays
Data Structure and Algorithms Arrays
ManishPrajapati78
 
AA Lecture 01 of my lecture os ghhhggh.ppt
AA Lecture 01 of my lecture os ghhhggh.pptAA Lecture 01 of my lecture os ghhhggh.ppt
AA Lecture 01 of my lecture os ghhhggh.ppt
maryamzahra3366
 
ADSA orientation.pptx
ADSA orientation.pptxADSA orientation.pptx
ADSA orientation.pptx
Kiran Babar
 
Algorithms the fundamentals, For computer Science.ppt
Algorithms the fundamentals, For computer Science.pptAlgorithms the fundamentals, For computer Science.ppt
Algorithms the fundamentals, For computer Science.ppt
CarloCimacio
 

More from Johnny Jean Tigas (8)

All About Storyboarding in connection with Computer animation
All About Storyboarding in connection with Computer animationAll About Storyboarding in connection with Computer animation
All About Storyboarding in connection with Computer animation
Johnny Jean Tigas
 
All about Network Models under Data Communications
All about Network Models under Data CommunicationsAll about Network Models under Data Communications
All about Network Models under Data Communications
Johnny Jean Tigas
 
Switch Case Statement in C++ Programming Language
Switch Case Statement in C++ Programming LanguageSwitch Case Statement in C++ Programming Language
Switch Case Statement in C++ Programming Language
Johnny Jean Tigas
 
National Learning Camp Assessment Orientation
National Learning Camp Assessment OrientationNational Learning Camp Assessment Orientation
National Learning Camp Assessment Orientation
Johnny Jean Tigas
 
Configuring IPv4 and IPv6 Addressing to STEM
Configuring IPv4 and IPv6 Addressing to STEMConfiguring IPv4 and IPv6 Addressing to STEM
Configuring IPv4 and IPv6 Addressing to STEM
Johnny Jean Tigas
 
A presentation design for the students in Science & Technologygy
A presentation design for the students in Science & TechnologygyA presentation design for the students in Science & Technologygy
A presentation design for the students in Science & Technologygy
Johnny Jean Tigas
 
Maintaining training facilities
Maintaining training facilitiesMaintaining training facilities
Maintaining training facilities
Johnny Jean Tigas
 
Plan training session
Plan training sessionPlan training session
Plan training session
Johnny Jean Tigas
 
All About Storyboarding in connection with Computer animation
All About Storyboarding in connection with Computer animationAll About Storyboarding in connection with Computer animation
All About Storyboarding in connection with Computer animation
Johnny Jean Tigas
 
All about Network Models under Data Communications
All about Network Models under Data CommunicationsAll about Network Models under Data Communications
All about Network Models under Data Communications
Johnny Jean Tigas
 
Switch Case Statement in C++ Programming Language
Switch Case Statement in C++ Programming LanguageSwitch Case Statement in C++ Programming Language
Switch Case Statement in C++ Programming Language
Johnny Jean Tigas
 
National Learning Camp Assessment Orientation
National Learning Camp Assessment OrientationNational Learning Camp Assessment Orientation
National Learning Camp Assessment Orientation
Johnny Jean Tigas
 
Configuring IPv4 and IPv6 Addressing to STEM
Configuring IPv4 and IPv6 Addressing to STEMConfiguring IPv4 and IPv6 Addressing to STEM
Configuring IPv4 and IPv6 Addressing to STEM
Johnny Jean Tigas
 
A presentation design for the students in Science & Technologygy
A presentation design for the students in Science & TechnologygyA presentation design for the students in Science & Technologygy
A presentation design for the students in Science & Technologygy
Johnny Jean Tigas
 
Maintaining training facilities
Maintaining training facilitiesMaintaining training facilities
Maintaining training facilities
Johnny Jean Tigas
 
Ad

Recently uploaded (20)

LDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad UpdatesLDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad Updates
LDM & Mia eStudios
 
Hemiptera & Neuroptera: Insect Diversity.pptx
Hemiptera & Neuroptera: Insect Diversity.pptxHemiptera & Neuroptera: Insect Diversity.pptx
Hemiptera & Neuroptera: Insect Diversity.pptx
Arshad Shaikh
 
TV Shows and web-series quiz | QUIZ CLUB OF PSGCAS | 13TH MARCH 2025
TV Shows and web-series quiz | QUIZ CLUB OF PSGCAS | 13TH MARCH 2025TV Shows and web-series quiz | QUIZ CLUB OF PSGCAS | 13TH MARCH 2025
TV Shows and web-series quiz | QUIZ CLUB OF PSGCAS | 13TH MARCH 2025
Quiz Club of PSG College of Arts & Science
 
What are the benefits that dance brings?
What are the benefits that dance brings?What are the benefits that dance brings?
What are the benefits that dance brings?
memi27
 
Unit- 4 Biostatistics & Research Methodology.pdf
Unit- 4 Biostatistics & Research Methodology.pdfUnit- 4 Biostatistics & Research Methodology.pdf
Unit- 4 Biostatistics & Research Methodology.pdf
KRUTIKA CHANNE
 
Black and White Illustrative Group Project Presentation.pdf (1).pdf
Black and White Illustrative Group Project Presentation.pdf (1).pdfBlack and White Illustrative Group Project Presentation.pdf (1).pdf
Black and White Illustrative Group Project Presentation.pdf (1).pdf
AnnasofiaUrsini
 
What is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptxWhat is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
Pests of Rice: Damage, Identification, Life history, and Management.pptx
Pests of Rice: Damage, Identification, Life history, and Management.pptxPests of Rice: Damage, Identification, Life history, and Management.pptx
Pests of Rice: Damage, Identification, Life history, and Management.pptx
Arshad Shaikh
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
Optimization technique in pharmaceutical product development.pptx
Optimization technique in pharmaceutical product development.pptxOptimization technique in pharmaceutical product development.pptx
Optimization technique in pharmaceutical product development.pptx
UrmiPrajapati3
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptxCapitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdfFEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle SchoolExploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Webcrawler_Mule_AIChain_MuleSoft_Meetup_HyderabadWebcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Veera Pallapu
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 EmployeeHow to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Allomorps and word formation.pptx - Google Slides.pdf
Allomorps and word formation.pptx - Google Slides.pdfAllomorps and word formation.pptx - Google Slides.pdf
Allomorps and word formation.pptx - Google Slides.pdf
Abha Pandey
 
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptxDiptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Arshad Shaikh
 
BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024
BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024
BUSINESS QUIZ PRELIMS | QUIZ CLUB OF PSGCAS | 9 SEPTEMBER 2024
Quiz Club of PSG College of Arts & Science
 
IDF 30min presentation - December 2, 2024.pptx
IDF 30min presentation - December 2, 2024.pptxIDF 30min presentation - December 2, 2024.pptx
IDF 30min presentation - December 2, 2024.pptx
ArneeAgligar
 
Respiratory System , Urinary System
Respiratory  System , Urinary SystemRespiratory  System , Urinary System
Respiratory System , Urinary System
RushiMandali
 
LDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad UpdatesLDMMIA Reiki Yoga Next Week Grad Updates
LDMMIA Reiki Yoga Next Week Grad Updates
LDM & Mia eStudios
 
Hemiptera & Neuroptera: Insect Diversity.pptx
Hemiptera & Neuroptera: Insect Diversity.pptxHemiptera & Neuroptera: Insect Diversity.pptx
Hemiptera & Neuroptera: Insect Diversity.pptx
Arshad Shaikh
 
What are the benefits that dance brings?
What are the benefits that dance brings?What are the benefits that dance brings?
What are the benefits that dance brings?
memi27
 
Unit- 4 Biostatistics & Research Methodology.pdf
Unit- 4 Biostatistics & Research Methodology.pdfUnit- 4 Biostatistics & Research Methodology.pdf
Unit- 4 Biostatistics & Research Methodology.pdf
KRUTIKA CHANNE
 
Black and White Illustrative Group Project Presentation.pdf (1).pdf
Black and White Illustrative Group Project Presentation.pdf (1).pdfBlack and White Illustrative Group Project Presentation.pdf (1).pdf
Black and White Illustrative Group Project Presentation.pdf (1).pdf
AnnasofiaUrsini
 
What is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptxWhat is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
Pests of Rice: Damage, Identification, Life history, and Management.pptx
Pests of Rice: Damage, Identification, Life history, and Management.pptxPests of Rice: Damage, Identification, Life history, and Management.pptx
Pests of Rice: Damage, Identification, Life history, and Management.pptx
Arshad Shaikh
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
Optimization technique in pharmaceutical product development.pptx
Optimization technique in pharmaceutical product development.pptxOptimization technique in pharmaceutical product development.pptx
Optimization technique in pharmaceutical product development.pptx
UrmiPrajapati3
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptxCapitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdfFEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle SchoolExploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Webcrawler_Mule_AIChain_MuleSoft_Meetup_HyderabadWebcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Veera Pallapu
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 EmployeeHow to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Allomorps and word formation.pptx - Google Slides.pdf
Allomorps and word formation.pptx - Google Slides.pdfAllomorps and word formation.pptx - Google Slides.pdf
Allomorps and word formation.pptx - Google Slides.pdf
Abha Pandey
 
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptxDiptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Diptera: The Two-Winged Wonders, The Fly Squad: Order Diptera.pptx
Arshad Shaikh
 
IDF 30min presentation - December 2, 2024.pptx
IDF 30min presentation - December 2, 2024.pptxIDF 30min presentation - December 2, 2024.pptx
IDF 30min presentation - December 2, 2024.pptx
ArneeAgligar
 
Respiratory System , Urinary System
Respiratory  System , Urinary SystemRespiratory  System , Urinary System
Respiratory System , Urinary System
RushiMandali
 
Ad

Algorithm, Pseudocode and Flowcharting in C++

  • 1. 1 Algorithms CS 202 Epp section ??? Aaron Bloomfield
  • 2. 2 What is an algorithm? An algorithm is “a finite set of precise instructions for performing a computation or for solving a problem”  A program is one type of algorithm All programs are algorithms Not all algorithms are programs!  Directions to somebody’s house is an algorithm  A recipe for cooking a cake is an algorithm  The steps to compute the cosine of 90° is an algorithm
  • 3. 3 Some algorithms are harder than others Some algorithms are easy  Finding the largest (or smallest) value in a list  Finding a specific value in a list Some algorithms are a bit harder  Sorting a list Some algorithms are very hard  Finding the shortest path between Miami and Seattle Some algorithms are essentially impossible  Factoring large composite numbers In section 2.2, we’ll see how to rate how “hard” algorithms are
  • 4. 4 Algorithm 1: Maximum element Given a list, how do we find the maximum element in the list? To express the algorithm, we’ll use pseudocode  Pseudocode is kinda like a programming language, but not really
  • 5. 5 Algorithm 1: Maximum element Algorithm for finding the maximum element in a list: procedure max (a1, a2, …, an: integers) max := a1 for i := 2 to n if max < ai then max := ai {max is the largest element}
  • 6. 6 procedure max (a1, a2, …, an: integers) max := a1 for i := 2 to n if max < ai then max := ai max := a1 for i := 2 to n if max < ai then max := ai Algorithm 1: Maximum element 4 1 7 0 5 2 9 3 6 8 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 max i 2 3 4 5 6 7 8 9 10 4 7 9
  • 7. 7 Maximum element running time How long does this take? If the list has n elements, worst case scenario is that it takes n “steps”  Here, a step is considered a single step through the list
  • 8. 8 Properties of algorithms Algorithms generally share a set of properties:  Input: what the algorithm takes in as input  Output: what the algorithm produces as output  Definiteness: the steps are defined precisely  Correctness: should produce the correct output  Finiteness: the steps required should be finite  Effectiveness: each step must be able to be performed in a finite amount of time  Generality: the algorithm should be applicable to all problems of a similar form
  • 9. 9 Searching algorithms Given a list, find a specific element in the list We will see two types  Linear search a.k.a. sequential search  Binary search
  • 10. 10 Algorithm 2: Linear search Given a list, find a specific element in the list  List does NOT have to be sorted! procedure linear_search (x: integer; a1, a2, …, an: integers) i := 1 while ( i ≤ n and x ≠ ai ) i := i + 1 if i ≤ n then location := i else location := 0 {location is the subscript of the term that equals x, or it is 0 if x is not found}
  • 11. 11 procedure linear_search (x: integer; a1, a2, …, an: integers) i := 1 while ( i ≤ n and x ≠ ai ) i := i + 1 if i ≤ n then location := i else location := 0 i := 1 while ( i ≤ n and x ≠ ai ) i := i + 1 if i ≤ n then location := i else location := 0 Algorithm 2: Linear search, take 1 4 1 7 0 5 2 9 3 6 8 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 i 2 3 4 5 6 7 8 1 x 3 location 8
  • 12. 12 procedure linear_search (x: integer; a1, a2, …, an: integers) i := 1 while ( i ≤ n and x ≠ ai ) i := i + 1 if i ≤ n then location := i else location := 0 i := 1 while ( i ≤ n and x ≠ ai ) i := i + 1 if i ≤ n then location := i else location := 0 Algorithm 2: Linear search, take 2 4 1 7 0 5 2 9 3 6 8 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 i 2 3 4 5 6 7 8 9 10 1 x 11 location 0 11
  • 13. 13 Linear search running time How long does this take? If the list has n elements, worst case scenario is that it takes n “steps”  Here, a step is considered a single step through the list
  • 14. 14 Algorithm 3: Binary search Given a list, find a specific element in the list  List MUST be sorted! Each time it iterates through, it cuts the list in half procedure binary_search (x: integer; a1, a2, …, an: increasing integers) i := 1 { i is left endpoint of search interval } j := n { j is right endpoint of search interval } while i < j begin m := (i+j)/2 { m is the point in the middle } if x > am then i := m+1 else j := m end if x = ai then location := i else location := 0 {location is the subscript of the term that equals x, or it is 0 if x is not found}
  • 15. 15 Algorithm 3: Binary search, take 1 2 4 6 8 10 12 14 16 18 20 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 i j m i := 1 j := n procedure binary_search (x: integer; a1, a2, …, an: increasing integers) while i < j begin m := (i+j)/2 if x > am then i := m+1 else j := m end if x = ai then location := i else location := 0 i := 1 j := n while i < j begin m := (i+j)/2 if x > am then i := m+1 else j := m end if x = ai then location := i 1 x 14 10 5 6 8 8 7 7 6 7 location 7
  • 16. 16 Algorithm 3: Binary search, take 2 2 4 6 8 10 12 14 16 18 20 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 i j m i := 1 j := n procedure binary_search (x: integer; a1, a2, …, an: increasing integers) while i < j begin m := (i+j)/2 if x > am then i := m+1 else j := m end if x = ai then location := i else location := 0 i := 1 j := n while i < j begin m := (i+j)/2 if x > am then i := m+1 else j := m end if x = ai then location := I else location := 0 1 x 15 10 5 6 8 8 7 location 0 8
  • 17. 17 Algorithm 3: Binary search A somewhat alternative view of what a binary search does…
  • 18. 18 Binary search running time How long does this take (worst case)? If the list has 8 elements  It takes 3 steps If the list has 16 elements  It takes 4 steps If the list has 64 elements  It takes 6 steps If the list has n elements  It takes log2 n steps
  • 19. 19 Sorting algorithms Given a list, put it into some order  Numerical, lexicographic, etc. We will see two types  Bubble sort  Insertion sort
  • 20. 20 Algorithm 4: Bubble sort One of the most simple sorting algorithms  Also one of the least efficient It takes successive elements and “bubbles” them up the list procedure bubble_sort (a1, a2, …, an) for i := 1 to n-1 for j := 1 to n-i if aj > aj+1 then interchange aj and aj+1 { a1, …, an are in increasing order }
  • 21. 22 Algorithm 4: Bubble sort An example using physical objects…
  • 22. 23 Bubble sort running time Bubble sort algorithm: for i := 1 to n-1 for j := 1 to n-i if aj > aj+1 then interchange aj and aj+1 Outer for loop does n-1 iterations Inner for loop does  n-1 iterations the first time  n-2 iterations the second time  …  1 iteration the last time Total: (n-1) + (n-2) + (n-3) + … + 2 + 1 = (n2-n)/2  We can say that’s “about” n2 time
  • 23. 25 Algorithm 5: Insertion sort Another simple (and inefficient) algorithm It starts with a list with one element, and inserts new elements into their proper place in the sorted part of the list procedure insertion_sort (a1, a2, …, an) for j := 2 to n begin i := 1 while aj > ai i := i +1 m := aj for k := 0 to j-i-1 aj-k := aj-k-1 ai := m end { a1, a2, …, an are sorted } take successive elements in the list find where that element should be in the sorted portion of the list move all elements in the sorted portion of the list that are greater than the current element up by one put the current element into it’s proper place in the sorted portion of the list
  • 24. 26 Insertion sort running time for j := 2 to n begin i := 1 while aj > ai i := i +1 m := aj for k := 0 to j-i-1 aj-k := aj-k-1 ai := m end { a1, a2, …, an are sorted } Outer for loop runs n-1 times In the inner for loop:  Worst case is when the while keeps i at 1, and the for loop runs lots of times  If i is 1, the inner for loop runs 1 time (k goes from 0 to 0) on the first iteration, 1 time on the second, up to n-2 times on the last iteration Total is 1 + 2 + … + n-2 = (n-1)(n-2)/2  We can say that’s “about” n2 time
  • 25. 27 Comparison of running times Searches  Linear: n steps  Binary: log2 n steps  Binary search is about as fast as you can get Sorts  Bubble: n2 steps  Insertion: n2 steps  There are other, more efficient, sorting techniques In principle, the fastest are heap sort, quick sort, and merge sort These each take take n * log2 n steps In practice, quick sort is the fastest, followed by merge sort