0% found this document useful (0 votes)
33 views

Intro Induction Asymptotic Analysis

This document outlines the key aspects of a computer algorithms course. It discusses the purpose of studying algorithms, the textbook, grading policy, and course format. It also provides examples of important algorithm analysis techniques like proof by induction and asymptotic notation. Key concepts covered include analyzing worst-case running time, how input size impacts analysis, and analyzing algorithms with single and nested loops. The goal is to introduce students to rigorous design and analysis of algorithms.

Uploaded by

Biprodip Pal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Intro Induction Asymptotic Analysis

This document outlines the key aspects of a computer algorithms course. It discusses the purpose of studying algorithms, the textbook, grading policy, and course format. It also provides examples of important algorithm analysis techniques like proof by induction and asymptotic notation. Key concepts covered include analyzing worst-case running time, how input size impacts analysis, and analyzing algorithms with single and nested loops. The goal is to introduce students to rigorous design and analysis of algorithms.

Uploaded by

Biprodip Pal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

CSE2201

Computer Algorithms

Introduction
Proof By Induction
Asymptotic notation
The Course

• Purpose: a rigorous introduction to the design and analysis of


algorithms
 Not a lab or programming course viewpoint
 Not a math course, either
 Lab & programming course
• Textbook: Introduction to Algorithms, Cormen, Leiserson, Rivest,
Stein
The Course

• Grading policy:
 Class Test [& Assignments]: 20%
 Participation + Class performance: 8%
 Final: 72%
The Course

• Format
 Three lectures/week
 Assignments
o Analysis
o Programming
 Tests
Why Study Algorithms?

• Important for all other branches of computer science


• Plays a key role in modern technological innovation
• Provides novel “lens” on processes outside of computer science
and technology
• Challenging (i.E., Good for the brain!)
• Fun
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
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
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)
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
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.
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)?
• Our first task is to define this notation more formally and
completely
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
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
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
oy=m*x+b
o c = 5 / 9 * (t - 32 )
o z = f(x) + g(y)
Guiding
Guiding
What Is a “Fast” Algorithm?
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
Asymptotic Analysis
Example: One Loop
Example: Two Loops
Example: Two Nested Loops
Example: Two Nested Loops (II)
The End

You might also like