SlideShare a Scribd company logo
David Luebke 1 10/8/2023
CS 332: Algorithms
Introduction
Proof By Induction
Asymptotic notation
David Luebke 2 10/8/2023
The Course
• Purpose: a rigorous introduction to the design
and analysis of algorithms
 Not a lab or programming course
 Not a math course, either
• Textbook: Introduction to Algorithms, Cormen,
Leiserson, Rivest, Stein
 The “Big White Book”
 Second edition: now “Smaller Green Book”
 An excellent reference you should own
David Luebke 3 10/8/2023
The Course
• Instructor: David Luebke
 luebke@cs.virginia.edu
 Office: Olsson 219
 Office hours: 2-3 Monday, 10-11 Thursday
• TA: Pavel Sorokin
 Office hours and location TBA
David Luebke 4 10/8/2023
The Course
• Grading policy:
 Homework: 30%
 Exam 1: 15%
 Exam 2: 15%
 Final: 35%
 Participation: 5%
David Luebke 5 10/8/2023
The Course
• Prerequisites:
 CS 202 w/ grade of C- or better
 CS 216 w/ grade of C- or better
 CS 302 recommended but not required
o Who has not taken CS 302?
David Luebke 6 10/8/2023
The Course
• Format
 Three lectures/week
 Homework most weeks
o Problem sets
o Maybe occasional programming assignments
 Two tests + final exam
David Luebke 7 10/8/2023
Review: Induction
• Suppose
 S(k) is true for fixed constant k
o Often k = 0
 S(n)  S(n+1) for all n >= k
• Then S(n) is true for all n >= k
David Luebke 8 10/8/2023
Proof By Induction
• Claim:S(n) is true for all n >= k
• Basis:
 Show formula is true when n = k
• Inductive hypothesis:
 Assume formula is true for an arbitrary n
• Step:
 Show that formula is then true for n+1
David Luebke 9 10/8/2023
Induction Example:
Gaussian Closed Form
• Prove 1 + 2 + 3 + … + n = n(n+1) / 2
 Basis:
o If n = 0, then 0 = 0(0+1) / 2
 Inductive hypothesis:
o Assume 1 + 2 + 3 + … + n = n(n+1) / 2
 Step (show true for n+1):
1 + 2 + … + n + n+1 = (1 + 2 + …+ n) + (n+1)
= n(n+1)/2 + n+1 = [n(n+1) + 2(n+1)]/2
= (n+1)(n+2)/2 = (n+1)(n+1 + 1) / 2
David Luebke 10 10/8/2023
Induction Example:
Geometric Closed Form
• Prove a0 + a1 + … + an = (an+1 - 1)/(a - 1) for
all a  1
 Basis: show that a0 = (a0+1 - 1)/(a - 1)
a0 = 1 = (a1 - 1)/(a - 1)
 Inductive hypothesis:
o Assume a0 + a1 + … + an = (an+1 - 1)/(a - 1)
 Step (show true for n+1):
a0 + a1 + … + an+1 = a0 + a1 + … + an + an+1
= (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1)
David Luebke 11 10/8/2023
Induction
• We’ve been using weak induction
• Strong induction also holds
 Basis: show S(0)
 Hypothesis: assume S(k) holds for arbitrary k <= n
 Step: Show S(n+1) follows
• Another variation:
 Basis: show S(0), S(1)
 Hypothesis: assume S(n) and S(n+1) are true
 Step: show S(n+2) follows
David Luebke 12 10/8/2023
Asymptotic Performance
• In this course, we care most about asymptotic
performance
 How does the algorithm behave as the problem
size gets very large?
o Running time
o Memory/storage requirements
o Bandwidth/power requirements/logic gates/etc.
David Luebke 13 10/8/2023
Asymptotic Notation
• By now you should have an intuitive feel for
asymptotic (big-O) notation:
 What does O(n) running time mean? O(n2)?
O(n lg n)?
 How does asymptotic running time relate to
asymptotic memory usage?
• Our first task is to define this notation more
formally and completely
David Luebke 14 10/8/2023
Analysis of Algorithms
• Analysis is performed with respect to a
computational model
• We will usually use a generic uniprocessor
random-access machine (RAM)
 All memory equally expensive to access
 No concurrent operations
 All reasonable instructions take unit time
o Except, of course, function calls
 Constant word size
o Unless we are explicitly manipulating bits
David Luebke 15 10/8/2023
Input Size
• Time and space complexity
 This is generally a function of the input size
o E.g., sorting, multiplication
 How we characterize input size depends:
o Sorting: number of input items
o Multiplication: total number of bits
o Graph algorithms: number of nodes & edges
o Etc
David Luebke 16 10/8/2023
Running Time
• Number of primitive steps that are executed
 Except for time of executing a function call most
statements roughly require the same amount of
time
o y = m * x + b
o c = 5 / 9 * (t - 32 )
o z = f(x) + g(y)
• We can be more exact if need be
David Luebke 17 10/8/2023
Analysis
• Worst case
 Provides an upper bound on running time
 An absolute guarantee
• Average case
 Provides the expected running time
 Very useful, but treat with care: what is “average”?
o Random (equally likely) inputs
o Real-life inputs
David Luebke 18 10/8/2023
The End

More Related Content

PPT
lecture1.ppt
PPT
lecture1.ppt
PPT
Lecture1-Architecture
PPT
Lecture1
PPTX
Civil Engineering Skills - Introduction
PDF
Chapter One.pdf
PPTX
Lec_5_Signal & System_31005_10Jan2025 (1).pptx
PDF
Module I CSAS_105152.pdf
lecture1.ppt
lecture1.ppt
Lecture1-Architecture
Lecture1
Civil Engineering Skills - Introduction
Chapter One.pdf
Lec_5_Signal & System_31005_10Jan2025 (1).pptx
Module I CSAS_105152.pdf

Similar to lecture1.ppt (20)

PDF
02-tradition-ml.pdf
PPT
lecture3.ppt
PDF
Convex optimization analysis in todays world scenario.pdf
PPT
lecture8.ppt
PPT
Hash table
PDF
Outline
PPT
Zvi random-walks-slideshare
PPTX
Ch 06 - CPM PERT (1).pptx
PPT
lecture1.ppt
PPTX
Analysis of Algorithms (CSE II/III year)
PDF
C03.05-Scheduling.key.pdf
PPTX
Lecture-12-CS345A-2023 of Design and Analysis
PPTX
Computational thinking copy (1)
PPT
Algorithms
PDF
CS-102 DS-class_01_02 Lectures Data .pdf
PPT
Lecture 1 and 2 of Data Structures & Algorithms
PPTX
Network scheduling
PPTX
Cynthia Lee ITEM 2018
PPT
september18.ppt
PPT
lecture7.ppt
02-tradition-ml.pdf
lecture3.ppt
Convex optimization analysis in todays world scenario.pdf
lecture8.ppt
Hash table
Outline
Zvi random-walks-slideshare
Ch 06 - CPM PERT (1).pptx
lecture1.ppt
Analysis of Algorithms (CSE II/III year)
C03.05-Scheduling.key.pdf
Lecture-12-CS345A-2023 of Design and Analysis
Computational thinking copy (1)
Algorithms
CS-102 DS-class_01_02 Lectures Data .pdf
Lecture 1 and 2 of Data Structures & Algorithms
Network scheduling
Cynthia Lee ITEM 2018
september18.ppt
lecture7.ppt
Ad

Recently uploaded (20)

PPTX
15.MENINGITIS AND ENCEPHALITIS-elias.pptx
PPTX
anaemia in PGJKKKKKKKKKKKKKKKKHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH...
PPT
ASRH Presentation for students and teachers 2770633.ppt
PPTX
CME 2 Acute Chest Pain preentation for education
PDF
Human Health And Disease hggyutgghg .pdf
PDF
Copy of OB - Exam #2 Study Guide. pdf
PPT
Obstructive sleep apnea in orthodontics treatment
PPT
1b - INTRODUCTION TO EPIDEMIOLOGY (comm med).ppt
PPTX
Cardiovascular - antihypertensive medical backgrounds
PPTX
History and examination of abdomen, & pelvis .pptx
PPT
HIV lecture final - student.pptfghjjkkejjhhge
PDF
NEET PG 2025 | 200 High-Yield Recall Topics Across All Subjects
PPT
Breast Cancer management for medicsl student.ppt
PPTX
Stimulation Protocols for IUI | Dr. Laxmi Shrikhande
PDF
Handout_ NURS 220 Topic 10-Abnormal Pregnancy.pdf
PPTX
Transforming Regulatory Affairs with ChatGPT-5.pptx
PPTX
post stroke aphasia rehabilitation physician
PDF
Medical Evidence in the Criminal Justice Delivery System in.pdf
PPTX
Imaging of parasitic D. Case Discussions.pptx
PPTX
ca esophagus molecula biology detailaed molecular biology of tumors of esophagus
15.MENINGITIS AND ENCEPHALITIS-elias.pptx
anaemia in PGJKKKKKKKKKKKKKKKKHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH...
ASRH Presentation for students and teachers 2770633.ppt
CME 2 Acute Chest Pain preentation for education
Human Health And Disease hggyutgghg .pdf
Copy of OB - Exam #2 Study Guide. pdf
Obstructive sleep apnea in orthodontics treatment
1b - INTRODUCTION TO EPIDEMIOLOGY (comm med).ppt
Cardiovascular - antihypertensive medical backgrounds
History and examination of abdomen, & pelvis .pptx
HIV lecture final - student.pptfghjjkkejjhhge
NEET PG 2025 | 200 High-Yield Recall Topics Across All Subjects
Breast Cancer management for medicsl student.ppt
Stimulation Protocols for IUI | Dr. Laxmi Shrikhande
Handout_ NURS 220 Topic 10-Abnormal Pregnancy.pdf
Transforming Regulatory Affairs with ChatGPT-5.pptx
post stroke aphasia rehabilitation physician
Medical Evidence in the Criminal Justice Delivery System in.pdf
Imaging of parasitic D. Case Discussions.pptx
ca esophagus molecula biology detailaed molecular biology of tumors of esophagus
Ad

lecture1.ppt

  • 1. David Luebke 1 10/8/2023 CS 332: Algorithms Introduction Proof By Induction Asymptotic notation
  • 2. David Luebke 2 10/8/2023 The Course • Purpose: a rigorous introduction to the design and analysis of algorithms  Not a lab or programming course  Not a math course, either • Textbook: Introduction to Algorithms, Cormen, Leiserson, Rivest, Stein  The “Big White Book”  Second edition: now “Smaller Green Book”  An excellent reference you should own
  • 3. David Luebke 3 10/8/2023 The Course • Instructor: David Luebke  luebke@cs.virginia.edu  Office: Olsson 219  Office hours: 2-3 Monday, 10-11 Thursday • TA: Pavel Sorokin  Office hours and location TBA
  • 4. David Luebke 4 10/8/2023 The Course • Grading policy:  Homework: 30%  Exam 1: 15%  Exam 2: 15%  Final: 35%  Participation: 5%
  • 5. David Luebke 5 10/8/2023 The Course • Prerequisites:  CS 202 w/ grade of C- or better  CS 216 w/ grade of C- or better  CS 302 recommended but not required o Who has not taken CS 302?
  • 6. David Luebke 6 10/8/2023 The Course • Format  Three lectures/week  Homework most weeks o Problem sets o Maybe occasional programming assignments  Two tests + final exam
  • 7. David Luebke 7 10/8/2023 Review: Induction • Suppose  S(k) is true for fixed constant k o Often k = 0  S(n)  S(n+1) for all n >= k • Then S(n) is true for all n >= k
  • 8. David Luebke 8 10/8/2023 Proof By Induction • Claim:S(n) is true for all n >= k • Basis:  Show formula is true when n = k • Inductive hypothesis:  Assume formula is true for an arbitrary n • Step:  Show that formula is then true for n+1
  • 9. David Luebke 9 10/8/2023 Induction Example: Gaussian Closed Form • Prove 1 + 2 + 3 + … + n = n(n+1) / 2  Basis: o If n = 0, then 0 = 0(0+1) / 2  Inductive hypothesis: o Assume 1 + 2 + 3 + … + n = n(n+1) / 2  Step (show true for n+1): 1 + 2 + … + n + n+1 = (1 + 2 + …+ n) + (n+1) = n(n+1)/2 + n+1 = [n(n+1) + 2(n+1)]/2 = (n+1)(n+2)/2 = (n+1)(n+1 + 1) / 2
  • 10. David Luebke 10 10/8/2023 Induction Example: Geometric Closed Form • Prove a0 + a1 + … + an = (an+1 - 1)/(a - 1) for all a  1  Basis: show that a0 = (a0+1 - 1)/(a - 1) a0 = 1 = (a1 - 1)/(a - 1)  Inductive hypothesis: o Assume a0 + a1 + … + an = (an+1 - 1)/(a - 1)  Step (show true for n+1): a0 + a1 + … + an+1 = a0 + a1 + … + an + an+1 = (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1)
  • 11. David Luebke 11 10/8/2023 Induction • We’ve been using weak induction • Strong induction also holds  Basis: show S(0)  Hypothesis: assume S(k) holds for arbitrary k <= n  Step: Show S(n+1) follows • Another variation:  Basis: show S(0), S(1)  Hypothesis: assume S(n) and S(n+1) are true  Step: show S(n+2) follows
  • 12. David Luebke 12 10/8/2023 Asymptotic Performance • In this course, we care most about asymptotic performance  How does the algorithm behave as the problem size gets very large? o Running time o Memory/storage requirements o Bandwidth/power requirements/logic gates/etc.
  • 13. David Luebke 13 10/8/2023 Asymptotic Notation • By now you should have an intuitive feel for asymptotic (big-O) notation:  What does O(n) running time mean? O(n2)? O(n lg n)?  How does asymptotic running time relate to asymptotic memory usage? • Our first task is to define this notation more formally and completely
  • 14. David Luebke 14 10/8/2023 Analysis of Algorithms • Analysis is performed with respect to a computational model • We will usually use a generic uniprocessor random-access machine (RAM)  All memory equally expensive to access  No concurrent operations  All reasonable instructions take unit time o Except, of course, function calls  Constant word size o Unless we are explicitly manipulating bits
  • 15. David Luebke 15 10/8/2023 Input Size • Time and space complexity  This is generally a function of the input size o E.g., sorting, multiplication  How we characterize input size depends: o Sorting: number of input items o Multiplication: total number of bits o Graph algorithms: number of nodes & edges o Etc
  • 16. David Luebke 16 10/8/2023 Running Time • Number of primitive steps that are executed  Except for time of executing a function call most statements roughly require the same amount of time o y = m * x + b o c = 5 / 9 * (t - 32 ) o z = f(x) + g(y) • We can be more exact if need be
  • 17. David Luebke 17 10/8/2023 Analysis • Worst case  Provides an upper bound on running time  An absolute guarantee • Average case  Provides the expected running time  Very useful, but treat with care: what is “average”? o Random (equally likely) inputs o Real-life inputs
  • 18. David Luebke 18 10/8/2023 The End