SlideShare uma empresa Scribd logo
1 de 26
Class 18:
    Measuring
    Cost



                                                cs1120 Fall 2011
                                                David Evans
Colossus Rebuilt, Bletchley Park, Summer 2004   3 October 2011
Plan
How Computer Scientists Measure Cost
Asymptotic Operators


         Assistant Coaches’ Review Sessions for Exam 1:
             Tuesday (tomorrow), 6:30pm, Rice 442
                 Wednesday, 7:30pm, Rice 442




                                                          2
(define (fibo-rec n)                   (define (fibo-loop n)
    (if (= n 0) 0                          (cdr
        (if (= n 1) 1                       (loop 1 (cons 0 1) (lambda (i) (< i n)) inc
            (+ (fibo-rec (- n 1))                 (lambda (i v)
               (fibo-rec (- n 2))))))               (cons (cdr v) (+ (car v) (cdr v)))))))

> (time (fibo-rec 2))                         > (time (fibo-loop 2))
cpu time: 0 real time: 0 gc time: 0           cpu time: 0 real time: 0 gc time: 0
1                                             1
> (time (fibo-rec 5))                         > (time (fibo-loop 5))
cpu time: 0 real time: 0 gc time: 0           cpu time: 0 real time: 0 gc time: 0
5                                             5
> (time (fibo-rec 20))                        > (time (fibo-loop 20))
cpu time: 0 real time: 2 gc time: 0           cpu time: 0 real time: 0 gc time: 0
6765                                          6765
> (time (fibo-rec 30))                        > (time (fibo-loop 30))
cpu time: 359 real time: 370 gc time: 0       cpu time: 0 real time: 0 gc time: 0
832040                                        832040
> (time (fibo-rec 60))                        > (time (fibo-loop 60))
still waiting since Friday…                   cpu time: 0 real time: 0 gc time: 0
                                              1548008755920
(define (fibo-rec n)                 (define (fibo-loop n)
  (if (= n 0) 0                        (cdr
      (if (= n 1) 1                     (loop 1 (cons 0 1)
          (+ (fibo-rec (- n 1))               (lambda (i) (< i n)) inc
             (fibo-rec (- n 2))))))           (lambda (i v)
                                                (cons (cdr v) (+ (car v) (cdr v)))))))

Number of “expensive” calls:                 Number of “expensive” calls:




where n is the value of the input,
and is the “golden ratio”:
How Computer Scientists
                    Measure Cost
 Abstract: hide all the details that will change
  when you get your next laptop to capture the
  fundamental cost of the procedure
    Cost: number of steps for a Turing Machine to
        execute the procedure
 Order of Growth: what matters is how the cost
  scales with the size of the input
    Size of input: how many TM squares needed to
        represent it
Usually, we can determine these without actually writing a TM version of our procedure!

                                                                                          5
Orders of Growth
                   6
Asymptotic Operators




                       7
Asymptotic Operators

These notations define sets of functions


In computing, the function inside the operator is
(usually) a mapping from the size of the input to the
number of steps required. We use the asymptotic
operators to abstract away all the silly details about
particular computers.

                                                         8
Big O
Intuition: the set of functions that grow no
  faster than f (more formal definition soon)
Asymptotic growth rate: as input to f approaches
  infinity, how fast does value of f increase
  Hence, only the fastest-growing term in f matters.


                                ?
           ?
                                                       9
Examples
              O(n3)               f(n) = 12n2 + n

                          O(n2)
f(n) = n2.5




 f(n) = n3.1 – n2

                                                10
Formal Definition




                    11
O Examples




x O (x2)?
10x O (x)?
x2   O (x)?


                       12
Lower Bound:          (Omega)




         Only difference from O: this was


                                            13
Where is
 (n2)?
              O(n3)                  f(n) = 12n2 + n

                             O(n2)
f(n) = n2.5           (n2)




 f(n) = n3.1 – n2

                                                   14
Inside-Out
                (n3)                  f(n) = 12n2 + n

                               (n2)
f(n) = n2.5            O(n2)




 f(n) = n3.1 – n2

                                                    15
Recap
Big-O: functions that grow no faster than f




Omega ( ): functions that grow no slower than f




                                                  16
The Sets O(f ) and Ω(f )

                O(f)   Ω(f) Functions
    Functions                that grow
    that grow                no slower
    no faster            f   than f
    than f




                                         17
What else might be useful?

              O(n3)                  f(n) = 12n2 + n

                             O(n2)
f(n) = n2.5           (n2)




 f(n) = n3.1 – n2

                                                   18
Theta (“Order of”)
Intuition: set of functions that grow as fast as f

Definition:




Slang: When people say, “f is order g” that means


                                                     19
Tight Bound Theta ( )
              O(n3)                  f(n) = 12n2 + n

                             O(n2)
f(n) = n2.5           (n2)
                                     (n2)



 f(n) = n3.1 – n2             Faster Growing

                                                   20
Θ Examples
Is 10n in Θ(n)?
   Yes, since 10n is (n) and 10n is in O(n)
      Doesn’t matter that you choose different c values
        for each part; they are independent
Is n2 in Θ(n)?
    No, since n2 is not in O(n)
 Is n in Θ(n2)?
    No, since n2 is not in (n)


                                                          21
The Sets O(f ), Ω(f ), and Θ(f )

                                   O(f)   Ω(f) Functions
                     Functions                  that grow
                     that grow                  no slower
                     no faster              f   than f
                     than f




          Θ(f)


How big are O(f ), Ω(f ), and Θ(f )?

                                                            22
Summary
Big-O: grow no faster than f
Omega: grow no slower than f
Theta:


  Which of these would we most like to know about
    costproc(n) = number of steps to execute proc on
                     input of size n
  ?


                                                       23
Complexity of Problems
       So, why do we need O and Ω?

Computer scientists often care about the
complexity of problems not algorithms. The
complexity of a problem is the complexity of the
best possible algorithm that solves the problem.



                                                   24
Algorithm Analysis
What is the asymptotic running time of the
Scheme procedure below:

    (define (bigger a b)
      (if (> a b) a b))




                                             25
Charge
Next class:
analyzing the costs of bigger
analyzing the costs of brute-force-lorenz

     Assistant Coaches’ Review Sessions for Exam 1:
         Tuesday (tomorrow), 6:30pm, Rice 442
             Wednesday, 7:30pm, Rice 442




                                                      26

Mais conteúdo relacionado

Mais procurados

A verifiable random function with short proofs and keys
A verifiable random function with short proofs and keysA verifiable random function with short proofs and keys
A verifiable random function with short proofs and keys
Aleksandr Yampolskiy
 
Compilation of COSMO for GPU using LLVM
Compilation of COSMO for GPU using LLVMCompilation of COSMO for GPU using LLVM
Compilation of COSMO for GPU using LLVM
Linaro
 
8086 labmanual
8086 labmanual8086 labmanual
8086 labmanual
iravi9
 

Mais procurados (20)

Faster Practical Block Compression for Rank/Select Dictionaries
Faster Practical Block Compression for Rank/Select DictionariesFaster Practical Block Compression for Rank/Select Dictionaries
Faster Practical Block Compression for Rank/Select Dictionaries
 
PVS-Studio team experience: checking various open source projects, or mistake...
PVS-Studio team experience: checking various open source projects, or mistake...PVS-Studio team experience: checking various open source projects, or mistake...
PVS-Studio team experience: checking various open source projects, or mistake...
 
Ch01 basic concepts_nosoluiton
Ch01 basic concepts_nosoluitonCh01 basic concepts_nosoluiton
Ch01 basic concepts_nosoluiton
 
Codes and Isogenies
Codes and IsogeniesCodes and Isogenies
Codes and Isogenies
 
Yampa AFRP Introduction
Yampa AFRP IntroductionYampa AFRP Introduction
Yampa AFRP Introduction
 
zkStudyClub: PLONKUP & Reinforced Concrete [Luke Pearson, Joshua Fitzgerald, ...
zkStudyClub: PLONKUP & Reinforced Concrete [Luke Pearson, Joshua Fitzgerald, ...zkStudyClub: PLONKUP & Reinforced Concrete [Luke Pearson, Joshua Fitzgerald, ...
zkStudyClub: PLONKUP & Reinforced Concrete [Luke Pearson, Joshua Fitzgerald, ...
 
2020 겨울방학 정기스터디 3주차
2020 겨울방학 정기스터디 3주차2020 겨울방학 정기스터디 3주차
2020 겨울방학 정기스터디 3주차
 
A verifiable random function with short proofs and keys
A verifiable random function with short proofs and keysA verifiable random function with short proofs and keys
A verifiable random function with short proofs and keys
 
2020 1학기 정기스터디 1주차
2020 1학기 정기스터디 1주차2020 1학기 정기스터디 1주차
2020 1학기 정기스터디 1주차
 
Compilation of COSMO for GPU using LLVM
Compilation of COSMO for GPU using LLVMCompilation of COSMO for GPU using LLVM
Compilation of COSMO for GPU using LLVM
 
ZK Study Club: Sumcheck Arguments and Their Applications
ZK Study Club: Sumcheck Arguments and Their ApplicationsZK Study Club: Sumcheck Arguments and Their Applications
ZK Study Club: Sumcheck Arguments and Their Applications
 
Improved security system using steganography and elliptic curve crypto...
Improved  security  system using  steganography  and  elliptic  curve  crypto...Improved  security  system using  steganography  and  elliptic  curve  crypto...
Improved security system using steganography and elliptic curve crypto...
 
The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain Enterprise
 
8086 labmanual
8086 labmanual8086 labmanual
8086 labmanual
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
 
Tiramisu をちょっと、味見してみました。
Tiramisu をちょっと、味見してみました。Tiramisu をちょっと、味見してみました。
Tiramisu をちょっと、味見してみました。
 
Python grass
Python grassPython grass
Python grass
 
Program implementation and testing
Program implementation and testingProgram implementation and testing
Program implementation and testing
 
Introduction to Homomorphic Encryption
Introduction to Homomorphic EncryptionIntroduction to Homomorphic Encryption
Introduction to Homomorphic Encryption
 
Computing on Encrypted Data
Computing on Encrypted DataComputing on Encrypted Data
Computing on Encrypted Data
 

Semelhante a Class 18: Measuring Cost

how to calclute time complexity of algortihm
how to calclute time complexity of algortihmhow to calclute time complexity of algortihm
how to calclute time complexity of algortihm
Sajid Marwat
 
Algorithms - Rocksolid Tour 2013
Algorithms  - Rocksolid Tour 2013Algorithms  - Rocksolid Tour 2013
Algorithms - Rocksolid Tour 2013
Gary Short
 
19. algorithms and-complexity
19. algorithms and-complexity19. algorithms and-complexity
19. algorithms and-complexity
ashishtinku
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
Nikhil Sharma
 
Lec03 04-time complexity
Lec03 04-time complexityLec03 04-time complexity
Lec03 04-time complexity
Abbas Ali
 

Semelhante a Class 18: Measuring Cost (20)

Time complexity.ppt
Time complexity.pptTime complexity.ppt
Time complexity.ppt
 
Analysis of algo
Analysis of algoAnalysis of algo
Analysis of algo
 
how to calclute time complexity of algortihm
how to calclute time complexity of algortihmhow to calclute time complexity of algortihm
how to calclute time complexity of algortihm
 
1_Asymptotic_Notation_pptx.pptx
1_Asymptotic_Notation_pptx.pptx1_Asymptotic_Notation_pptx.pptx
1_Asymptotic_Notation_pptx.pptx
 
algorithm_analysis1
algorithm_analysis1algorithm_analysis1
algorithm_analysis1
 
Unit-1 DAA_Notes.pdf
Unit-1 DAA_Notes.pdfUnit-1 DAA_Notes.pdf
Unit-1 DAA_Notes.pdf
 
CMSC 56 | Lecture 8: Growth of Functions
CMSC 56 | Lecture 8: Growth of FunctionsCMSC 56 | Lecture 8: Growth of Functions
CMSC 56 | Lecture 8: Growth of Functions
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1
 
06 Recursion in C.pptx
06 Recursion in C.pptx06 Recursion in C.pptx
06 Recursion in C.pptx
 
Algorithms - Rocksolid Tour 2013
Algorithms  - Rocksolid Tour 2013Algorithms  - Rocksolid Tour 2013
Algorithms - Rocksolid Tour 2013
 
big_oh
big_ohbig_oh
big_oh
 
19. algorithms and-complexity
19. algorithms and-complexity19. algorithms and-complexity
19. algorithms and-complexity
 
Class 17: Golden Sneezewort
Class 17: Golden SneezewortClass 17: Golden Sneezewort
Class 17: Golden Sneezewort
 
Lec1
Lec1Lec1
Lec1
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
Time complexity
Time complexityTime complexity
Time complexity
 
AlgorithmAnalysis2.ppt
AlgorithmAnalysis2.pptAlgorithmAnalysis2.ppt
AlgorithmAnalysis2.ppt
 
Algorithm And analysis Lecture 03& 04-time complexity.
 Algorithm And analysis Lecture 03& 04-time complexity. Algorithm And analysis Lecture 03& 04-time complexity.
Algorithm And analysis Lecture 03& 04-time complexity.
 
Lec03 04-time complexity
Lec03 04-time complexityLec03 04-time complexity
Lec03 04-time complexity
 

Mais de David Evans

Mais de David Evans (20)

Cryptocurrency Jeopardy!
Cryptocurrency Jeopardy!Cryptocurrency Jeopardy!
Cryptocurrency Jeopardy!
 
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for CypherpunksTrick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks
 
Hidden Services, Zero Knowledge
Hidden Services, Zero KnowledgeHidden Services, Zero Knowledge
Hidden Services, Zero Knowledge
 
Anonymity in Bitcoin
Anonymity in BitcoinAnonymity in Bitcoin
Anonymity in Bitcoin
 
Midterm Confirmations
Midterm ConfirmationsMidterm Confirmations
Midterm Confirmations
 
Scripting Transactions
Scripting TransactionsScripting Transactions
Scripting Transactions
 
How to Live in Paradise
How to Live in ParadiseHow to Live in Paradise
How to Live in Paradise
 
Bitcoin Script
Bitcoin ScriptBitcoin Script
Bitcoin Script
 
Mining Economics
Mining EconomicsMining Economics
Mining Economics
 
Mining
MiningMining
Mining
 
The Blockchain
The BlockchainThe Blockchain
The Blockchain
 
Becoming More Paranoid
Becoming More ParanoidBecoming More Paranoid
Becoming More Paranoid
 
Asymmetric Key Signatures
Asymmetric Key SignaturesAsymmetric Key Signatures
Asymmetric Key Signatures
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
 
Class 1: What is Money?
Class 1: What is Money?Class 1: What is Money?
Class 1: What is Money?
 
Multi-Party Computation for the Masses
Multi-Party Computation for the MassesMulti-Party Computation for the Masses
Multi-Party Computation for the Masses
 
Proof of Reserve
Proof of ReserveProof of Reserve
Proof of Reserve
 
Silk Road
Silk RoadSilk Road
Silk Road
 
Blooming Sidechains!
Blooming Sidechains!Blooming Sidechains!
Blooming Sidechains!
 
Useful Proofs of Work, Permacoin
Useful Proofs of Work, PermacoinUseful Proofs of Work, Permacoin
Useful Proofs of Work, Permacoin
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Class 18: Measuring Cost

  • 1. Class 18: Measuring Cost cs1120 Fall 2011 David Evans Colossus Rebuilt, Bletchley Park, Summer 2004 3 October 2011
  • 2. Plan How Computer Scientists Measure Cost Asymptotic Operators Assistant Coaches’ Review Sessions for Exam 1: Tuesday (tomorrow), 6:30pm, Rice 442 Wednesday, 7:30pm, Rice 442 2
  • 3. (define (fibo-rec n) (define (fibo-loop n) (if (= n 0) 0 (cdr (if (= n 1) 1 (loop 1 (cons 0 1) (lambda (i) (< i n)) inc (+ (fibo-rec (- n 1)) (lambda (i v) (fibo-rec (- n 2)))))) (cons (cdr v) (+ (car v) (cdr v))))))) > (time (fibo-rec 2)) > (time (fibo-loop 2)) cpu time: 0 real time: 0 gc time: 0 cpu time: 0 real time: 0 gc time: 0 1 1 > (time (fibo-rec 5)) > (time (fibo-loop 5)) cpu time: 0 real time: 0 gc time: 0 cpu time: 0 real time: 0 gc time: 0 5 5 > (time (fibo-rec 20)) > (time (fibo-loop 20)) cpu time: 0 real time: 2 gc time: 0 cpu time: 0 real time: 0 gc time: 0 6765 6765 > (time (fibo-rec 30)) > (time (fibo-loop 30)) cpu time: 359 real time: 370 gc time: 0 cpu time: 0 real time: 0 gc time: 0 832040 832040 > (time (fibo-rec 60)) > (time (fibo-loop 60)) still waiting since Friday… cpu time: 0 real time: 0 gc time: 0 1548008755920
  • 4. (define (fibo-rec n) (define (fibo-loop n) (if (= n 0) 0 (cdr (if (= n 1) 1 (loop 1 (cons 0 1) (+ (fibo-rec (- n 1)) (lambda (i) (< i n)) inc (fibo-rec (- n 2)))))) (lambda (i v) (cons (cdr v) (+ (car v) (cdr v))))))) Number of “expensive” calls: Number of “expensive” calls: where n is the value of the input, and is the “golden ratio”:
  • 5. How Computer Scientists Measure Cost Abstract: hide all the details that will change when you get your next laptop to capture the fundamental cost of the procedure Cost: number of steps for a Turing Machine to execute the procedure Order of Growth: what matters is how the cost scales with the size of the input Size of input: how many TM squares needed to represent it Usually, we can determine these without actually writing a TM version of our procedure! 5
  • 8. Asymptotic Operators These notations define sets of functions In computing, the function inside the operator is (usually) a mapping from the size of the input to the number of steps required. We use the asymptotic operators to abstract away all the silly details about particular computers. 8
  • 9. Big O Intuition: the set of functions that grow no faster than f (more formal definition soon) Asymptotic growth rate: as input to f approaches infinity, how fast does value of f increase Hence, only the fastest-growing term in f matters. ? ? 9
  • 10. Examples O(n3) f(n) = 12n2 + n O(n2) f(n) = n2.5 f(n) = n3.1 – n2 10
  • 12. O Examples x O (x2)? 10x O (x)? x2 O (x)? 12
  • 13. Lower Bound: (Omega) Only difference from O: this was 13
  • 14. Where is (n2)? O(n3) f(n) = 12n2 + n O(n2) f(n) = n2.5 (n2) f(n) = n3.1 – n2 14
  • 15. Inside-Out (n3) f(n) = 12n2 + n (n2) f(n) = n2.5 O(n2) f(n) = n3.1 – n2 15
  • 16. Recap Big-O: functions that grow no faster than f Omega ( ): functions that grow no slower than f 16
  • 17. The Sets O(f ) and Ω(f ) O(f) Ω(f) Functions Functions that grow that grow no slower no faster f than f than f 17
  • 18. What else might be useful? O(n3) f(n) = 12n2 + n O(n2) f(n) = n2.5 (n2) f(n) = n3.1 – n2 18
  • 19. Theta (“Order of”) Intuition: set of functions that grow as fast as f Definition: Slang: When people say, “f is order g” that means 19
  • 20. Tight Bound Theta ( ) O(n3) f(n) = 12n2 + n O(n2) f(n) = n2.5 (n2) (n2) f(n) = n3.1 – n2 Faster Growing 20
  • 21. Θ Examples Is 10n in Θ(n)? Yes, since 10n is (n) and 10n is in O(n) Doesn’t matter that you choose different c values for each part; they are independent Is n2 in Θ(n)? No, since n2 is not in O(n) Is n in Θ(n2)? No, since n2 is not in (n) 21
  • 22. The Sets O(f ), Ω(f ), and Θ(f ) O(f) Ω(f) Functions Functions that grow that grow no slower no faster f than f than f Θ(f) How big are O(f ), Ω(f ), and Θ(f )? 22
  • 23. Summary Big-O: grow no faster than f Omega: grow no slower than f Theta: Which of these would we most like to know about costproc(n) = number of steps to execute proc on input of size n ? 23
  • 24. Complexity of Problems So, why do we need O and Ω? Computer scientists often care about the complexity of problems not algorithms. The complexity of a problem is the complexity of the best possible algorithm that solves the problem. 24
  • 25. Algorithm Analysis What is the asymptotic running time of the Scheme procedure below: (define (bigger a b) (if (> a b) a b)) 25
  • 26. Charge Next class: analyzing the costs of bigger analyzing the costs of brute-force-lorenz Assistant Coaches’ Review Sessions for Exam 1: Tuesday (tomorrow), 6:30pm, Rice 442 Wednesday, 7:30pm, Rice 442 26