0% found this document useful (0 votes)
64 views9 pages

Big O

Big O notation is used to analyze the performance of algorithms and code by defining the mathematical boundaries of runtime. It determines the best, average, and worst case scenarios. Common time complexities include O(1) for constant time, O(log n) for logarithmic time, O(n) for linear time, and O(n^2) for quadratic time. Space complexity is also important and analyzes the memory footprint of an algorithm. Big O notation helps optimize code performance.

Uploaded by

Karthikeyan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views9 pages

Big O

Big O notation is used to analyze the performance of algorithms and code by defining the mathematical boundaries of runtime. It determines the best, average, and worst case scenarios. Common time complexities include O(1) for constant time, O(log n) for logarithmic time, O(n) for linear time, and O(n^2) for quadratic time. Space complexity is also important and analyzes the memory footprint of an algorithm. Big O notation helps optimize code performance.

Uploaded by

Karthikeyan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

BIG O

-> BIG O in layman language


a tool to analyze the performance of your code or
algorithm

let's take a step back to understand from where big 0 notation is coming

-> Asymptotic analysis


defining the mathematical boundation of any
algorithm to define its run-time performance.
helps in concluding the best case, average case,
and worst case scenario of an algorithm.
bound to input which means if there is no input,
algo will work in constant time.

-> need of doing this analysis?


define performance of a system.
take example of an assembly line for a soft
drink bottle.
Say first step is to clean the bottle

ANKIT PANGASA
BIG O

second is to fill bottle


third is to seal it
fourth is to print the logo
let's say each of the step takes 1 second
per bottle except filling which takes 5 sec.
the overall performance of the system will
be 5 sec.
similarly for software systems knowing the
performance of different blocks or different
algorithms helps identify the overall
performance of the software system

-> Asymptotic Notations

Big oh Notation (?)


Omega Notation (Ω)
Theta Notation (θ)

Big oh is mostly used and considered. So let's begin :)

ANKIT PANGASA
BIG O

-> Dive in Big O notation


express the upper boundary of an algorithm
running time.
say f(n) and g(n) are
functions for positive
integers
then, f(n) = O(g(n))
≤ ≥
f(n) is big oh of g(n)

f(n) cg(n) for all n n0

ANKIT PANGASA
BIG O

-> Finding the Big O complexity


analyze input
figure out the different operations in the
algorithms
figure out the operations with the higher
complexities. These operations define the Big O
complexity of complexity
your code of your code

ANKIT PANGASA
BIG O

-> Algos and their time complexity


Logarithmic algorithm – O(logn) – Binary
Search.
Linear algorithm – O(n) – Linear Search.
Superlinear algorithm – O(nlogn) – Heap Sort,
Merge Sort.
Polynomial algorithm – O(n^c) - Bubble Sort,
Selection Sort, Insertion Sort
Exponential algorithm – O(c^n) – Tower of
Hanoi.
Factorial algorithm – O(n!) – Traveling Salesman,
and other backtracking problems.

-> Space complexity


identifying memory footprint or space
complexity is as important as time complexity
analyze the input and identify how much space
it occupies

ANKIT PANGASA
BIG O

look at pieces of the program responsible for


memory usage. For example, recursive
implementation as it reserves memory for
recursion stack

-> Quick references

credits: https://www.bigocheatsheet.com/

ANKIT PANGASA
BIG O

-> Quick references

credits: https://www.bigocheatsheet.com/

ANKIT PANGASA

do like, share, comment


and save!

follow Ankit Pangasa for


more such useful content!

BIG O

look at pieces of the program responsible for


memory usage. For example, recursive
implementation as it reserves memory for
recursion stack

-> Quick references

credits: https://www.bigocheatsheet.com/

ANKIT PANGASA

You might also like