# 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; 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