Skip to content

Instantly share code, notes, and snippets.

@waterswv
Created November 23, 2019 15:16
Show Gist options
  • Save waterswv/b4b028071867b43f196b3bd8e105848f to your computer and use it in GitHub Desktop.
Save waterswv/b4b028071867b43f196b3bd8e105848f to your computer and use it in GitHub Desktop.
Today I ...

Today I learned about...

  1. Algorithm Run Time Efficiency
  2. Asymptotic Notation
  3. Big Theta
  4. Big Omega
  5. Big O
  6. Rates of Growth ordering

Detailed descriptions below

Things I'm curious about today:

  1. Data Fetching using NextJS
  2. getInitialProps functions
  3. Websockets

Algorithm Run Time

Algorithm run time is concerned with not just the efficiency of the code you write, but also the speed of the computer, the language, and the compiler.

Asymptotic Notation

Asymptotic notation is concerned with how long run time takes in terms of the size of the inputs AND the rate of growth i.e. how fast a function grows with the input size. Asymptotic notation is achieved when you break an equation down to remove the unimportant terms and constants. EX: n^2 + 100 would evaluate to n^2 with the constant 100 dropped.

Big Theta

Has an asymptotically tight bound where as n grows large enough your runtime is @ least k1 * n & @ most k2 * n

Big Omega

Has an asymptotically lower bounds

Big O Notation

Has an symptotically upper bounds

Rates of Growth ordering

from slowest growing to fastest growing

  1. Constant time
  2. Logarithmic
  3. Linear
  4. Linear-logrithmic
  5. Polynomial
  6. Exponential

Thanks to Khan Academy algorithm course for an excellent breakdown on runtime calculations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment