# Prepping for a Google Interview

##
March 13, 2014

These are a bunch of notes I took when I was reading through *Cracking the Coding Interview* in prep for a Google Interview

- spelling algorithms correctly is important

peaks

- insertion sort always O(N^2) because going through and moving
- binary sort can assist it to be O(log(n)n) for insertions but still N^2 for swaps
- merge sort two arrays, sort, then merge, then split and repeat. O(log(n)n) complexity
- priority queue -
- maxheap, nodes are always larger than or equal to their children (max heap property)
- minheap, nodes are always smaller than or equal to their children (min heap property)

- heap sort – heap on a tree, (breadth first view,)
int array[7]; indexies
-AVL trees
- traverse = n
- insert nlog(n)
- delete min
- find next min and max and next smaller and next min
- log(n),

Comparison Model -Searching: (lng) -Sorting nln(n) -All input items are blackboxes In reality

Linear time sorting for not large - O(n sqrt(lnln(n)) -Prehashing = alpha = n/m time, orderone = theta(1+alpha) (a*k)mod(2^w) >> 2^(r-w) where m = 2^r also k mod m - hash the function and modulus

Hash table properties - make use of all info provided by key (Key:Value) - uniformly distrutes output across table - maps similar keys to very different hash values - uses only very fast operations to minimize run time.

TODO - Binary Tree / n-tree / AVL Tree / tr-tree - Their Traversals - Insert/delete/search - Make Graph / Search / Edges/Vertices - Quick/MergeSort