Lecture 13: Asymptotics I

9/26/2020

61B: Writing Efficient Programs

Example of Algorithm Cost

Characterization 1 Clock Time

How Do I Runtime Characterization?

Techniques for Measuring Computational Cost

Techniques for Measuring Computational Cost

Why Scaling Matters

Comparing Algorithms

Asymptotic Behavior

Parabolas vs. Lines

Scaling Across Many Domains

Worst Case Orders of Growth

Intuitive Simplification 1: Consider Only the Worst Case

Intuitive Simplification 2: Restrict Attention to One Operation

Intuitive Simplification 3: Eliminate low order terms

Intuitive Simplification 4: Eliminate multiplicative constants

Simplification Summary

Simplified Analysis

Simplified Analysis Process

Analysis of Nested For Loops (Based on Exact Count)

int N = A.length; for (int i = 0; i < N; i += 1) { for (int j = i + 1; j < N; j += 1) { if (A[9] == A[j]) { return true; } } } return false

AnLysis of Nested For Loops (Simpler Geometric Argument)

Formalizing Order of Growth

Big-Theta: Formal Definition

Big-Theta and Runtime AnLysis

Big O Notation

Big O


Big Theta vs. Big O

Summary

Summary From Discussion

Aymptotics